{-# OPTIONS --without-K --safe #-}
module README.Pointers-to-results-from-the-paper where
import Colist
import Conat
import Nat
import Omniscience
import Prelude
import Delay-monad
import Delay-monad.Bisimilarity
import Delay-monad.Monad
import Bounded-space
import Only-allocation
import Unbounded-space
import Upper-bounds
import Lambda.Compiler
import Lambda.Compiler-correctness
import Lambda.Compiler-correctness.Sizes-match
import Lambda.Delay-crash
import Lambda.Delay-crash-trace
import Lambda.Interpreter
import Lambda.Interpreter.Instrumented
import Lambda.Interpreter.Instrumented.Counterexample
import Lambda.Interpreter.Instrumented.Example
import Lambda.Virtual-machine
import Lambda.Virtual-machine.Instructions
import Lambda.Syntax
Conat = Conat.Conat
Conat′ = Conat.Conat′
infinity = Conat.infinity
[_]_≤_ = Conat.[_]_≤_
[_]_≤′_ = Conat.[_]_≤′_
[_]_∼N_ = Conat.[_]_∼_
[_]_∼N′_ = Conat.[_]_∼′_
Delay = Delay-monad.Delay
Delay′ = Delay-monad.Delay′
never = Delay-monad.never
monad-instance = Delay-monad.Monad.delay-raw-monad
[_]_∼D_ = Delay-monad.Bisimilarity.[_]_∼_
[_]_≈D_ = Delay-monad.Bisimilarity.[_]_≈_
Stmt = Only-allocation.Stmt
Program = Only-allocation.Program
Colist = Colist.Colist
Colist′ = Colist.Colist′
Heap = Bounded-space.Heap
_⊎_ = Prelude._⊎_
_≤_ = Nat._≤_
_<_ = Nat._<_
_≤⊎>_ = Nat._≤⊎>_
shrink = Bounded-space.shrink
Maybe = Prelude.Maybe
grow = Bounded-space.grow
step₁ = Bounded-space.step
⟦_⟧₁ = Bounded-space.⟦_⟧
crash₁ = Bounded-space.crash
¬_ = Prelude.¬_
now≉never = Delay-monad.Bisimilarity.now≉never
constant-space = Only-allocation.constant-space
constant-space₂ = Only-allocation.constant-space₂
unbounded-space = Only-allocation.unbounded-space
_∷′_ = Colist._∷′_
constant-space-crash = Bounded-space.constant-space-crash
constant-space-loop = Bounded-space.constant-space-loop
constant-space₂-loop = Bounded-space.constant-space₂-loop
unbounded-space-crash = Bounded-space.unbounded-space-crash
∃ = Prelude.∃
_≃_ = Bounded-space.[_]_≃_
reflexive-≃ = Bounded-space.reflexive
symmetric-≃ = Bounded-space.symmetric
transitive-≃ = Bounded-space.transitive
∷-cong = Bounded-space.∷-cong
constant-space≃constant-space₂ =
Bounded-space.constant-space≃constant-space₂
¬constant-space≃unbounded-space =
Bounded-space.¬constant-space≃unbounded-space
modify = Unbounded-space.modify
⟦_⟧₂ = Unbounded-space.⟦_⟧
⟦_⟧′ = Unbounded-space.⟦_⟧′
[_]_⊑_ = Upper-bounds.[_]_⊑_
[_]_⊑′_ = Upper-bounds.[_]_⊑′_
□ = Colist.□
□′ = Colist.□′
LUB = Upper-bounds.LUB
lub-unique = Upper-bounds.lub-unique
antisymmetric = Conat.antisymmetric-≤
Maximum-heap-usage = Unbounded-space.Maximum-heap-usage
max-unique = Unbounded-space.max-unique
constant-space-loops = Unbounded-space.constant-space-loops
constant-space₂-loops = Unbounded-space.constant-space₂-loops
unbounded-space-loops = Unbounded-space.unbounded-space-loops
max-constant-space-1 = Unbounded-space.max-constant-space-1
max-constant-space₂-2 = Unbounded-space.max-constant-space₂-2
max-unbounded-space-∞ = Unbounded-space.max-unbounded-space-∞
no-finite-max→infinite-max = Unbounded-space.no-finite-max→infinite-max
no-finite→infinite = Upper-bounds.no-finite→infinite
max→wlpo = Unbounded-space.max→wlpo
Dec = Prelude.Dec
WLPO = Omniscience.WLPO
LEM→WLPO = Omniscience.LEM→WLPO
wlpo→lub = Upper-bounds.wlpo→lub
wlpo⇔max = Unbounded-space.wlpo⇔max
wlpo⇔lub = Unbounded-space.wlpo⇔lub
optimise = Unbounded-space.optimise
optimise-improves = Unbounded-space.optimise-improves
optimise-constant-space₂∼constant-space =
Unbounded-space.optimise-constant-space₂∼constant-space
[_]_∼L_ = Colist.[_]_∼_
optimise-correct = Unbounded-space.optimise-correct
[_]_≲_ = Upper-bounds.[_]_≲_
[_]_≲′_ = Upper-bounds.[_]_≲′_
≲⇔least-upper-bounds-≤ = Upper-bounds.≲⇔least-upper-bounds-≤
[]≲ = Upper-bounds.[]≲
consʳ-≲ = Upper-bounds.consʳ-≲
consˡ-≲ = Upper-bounds.consˡ-≲
cons′-≲ = Upper-bounds.cons′-≲
Bounded = Upper-bounds.Bounded
consʳ-≲′→≲-infinite = Upper-bounds.consʳ-≲′→≲-infinite
¬-consʳ-≲′ = Upper-bounds.¬-consʳ-≲′
reflexive-≲ = Upper-bounds._□≲
transitive-≲ = Upper-bounds.step-≲
¬-transitivity-size-preservingʳ =
Upper-bounds.¬-transitivity-size-preservingʳ
transitive-∼≲ = Upper-bounds.step-∼≲
optimise-correct-≲ = Unbounded-space.optimise-correct-≲
Tm = Lambda.Syntax.Tm
Env = Lambda.Syntax.Closure.Env
Value = Lambda.Syntax.Closure.Value
Delay-crash = Lambda.Delay-crash.Delay-crash
crash₂ = Lambda.Delay-crash.crash
_∙_ = Lambda.Interpreter._∙_
⟦_⟧₃ = Lambda.Interpreter.⟦_⟧
⟦if⟧ = Lambda.Interpreter.⟦if⟧
Delay-crash-trace = Lambda.Delay-crash-trace.Delay-crash-trace
Delay-crash-trace′ = Lambda.Delay-crash-trace.Delay-crash-trace′
trace = Lambda.Delay-crash-trace.trace
delay-crash = Lambda.Delay-crash-trace.delay-crash
Instr = Lambda.Virtual-machine.Instructions.Instr
Code = Lambda.Virtual-machine.Instructions.Code
VM-Env = Lambda.Syntax.Closure.Env
VM-Value = Lambda.Syntax.Closure.Value
Stack-element = Lambda.Virtual-machine.Instructions.Stack-element
Stack = Lambda.Virtual-machine.Instructions.Stack
State = Lambda.Virtual-machine.Instructions.State
Result = Lambda.Virtual-machine.Instructions.Result
step₂ = Lambda.Virtual-machine.step
exec⁺ = Lambda.Virtual-machine.exec⁺
exec⁺′ = Lambda.Virtual-machine.exec⁺′
exec = Lambda.Virtual-machine.exec
stack-size = Lambda.Virtual-machine.Instructions.stack-size
stack-sizes = Lambda.Virtual-machine.stack-sizes
In-tail-context = Lambda.Compiler.In-tail-context
comp = Lambda.Compiler.comp
comp-body = Lambda.Compiler.comp-body
comp-name = Lambda.Compiler.comp-name
comp-env = Lambda.Compiler.comp-env
comp-val = Lambda.Compiler.comp-val
comp₀ = Lambda.Compiler.comp₀
compiler-correct = Lambda.Compiler-correctness.correct
key-lemma₁ = Lambda.Compiler-correctness.⟦⟧-correct
Cont-OK₁ = Lambda.Compiler-correctness.Cont-OK
Stack-OK₁ = Lambda.Compiler-correctness.Stack-OK
[_,_]_∙I_ = Lambda.Interpreter.Instrumented.[_,_]_∙_
⟦_⟧I = Lambda.Interpreter.Instrumented.⟦_⟧
δ₁ = Lambda.Interpreter.Instrumented.δ₁
δ₂ = Lambda.Interpreter.Instrumented.δ₂
⟦if⟧I = Lambda.Interpreter.Instrumented.⟦if⟧
scanl = Colist.scanl
numbers = Lambda.Interpreter.Instrumented.numbers
stack-sizesI = Lambda.Interpreter.Instrumented.stack-sizes
⟦⟧∼⟦⟧ = Lambda.Interpreter.Instrumented.⟦⟧∼⟦⟧
maximum-stack-sizes-match =
Lambda.Compiler-correctness.Sizes-match.maximum-stack-sizes-match
stack-sizes-not-bisimilar =
Lambda.Interpreter.Instrumented.Counterexample.stack-sizes-not-bisimilar
stack-sizes-related =
Lambda.Compiler-correctness.Sizes-match.stack-sizes-related
[_]_≂_ = Upper-bounds.[_]_≂_
[_]_≂′_ = Upper-bounds.[_]_≂′_
LUB-cong = Upper-bounds.LUB-cong
consʳ-≂ = Upper-bounds.consʳ-≂
consˡ-≂ = Upper-bounds.consˡ-≂
cons-≂ = Upper-bounds.cons-≂
cons′-≂ = Upper-bounds.cons′-≂
reflexive-≂ = Upper-bounds._□≂
symmetric-≂ = Upper-bounds.symmetric-≂
transitive-≂ = Upper-bounds.step-≂
transitive-∼≂ = Upper-bounds.step-∼≂
transitive-≂∼ = Upper-bounds.step-≂∼
key-lemma₂ = Lambda.Compiler-correctness.Sizes-match.⟦⟧-correct
Cont-OK₂ = Lambda.Compiler-correctness.Sizes-match.Cont-OK
Stack-OK₂ = Lambda.Compiler-correctness.Sizes-match.Stack-OK
ω = Lambda.Syntax.ω
Ω = Lambda.Syntax.Ω
Ω-loops = Lambda.Interpreter.Ω-loops′
Ω-sizes = Lambda.Interpreter.Instrumented.Ω-sizes
stack-sizes-Ω∼Ω-sizes-0 =
Lambda.Interpreter.Instrumented.stack-sizes-Ω∼Ω-sizes-0
lub-Ω-sizes-0-infinity =
Lambda.Interpreter.Instrumented.lub-Ω-sizes-0-infinity
Ω-requires-unbounded-space =
Lambda.Interpreter.Instrumented.Ω-requires-unbounded-space
def = Lambda.Interpreter.Instrumented.Example.def
go = Lambda.Interpreter.Instrumented.Example.go
go-loops = Lambda.Interpreter.Instrumented.Example.go-loops
loop-sizes = Lambda.Interpreter.Instrumented.Example.loop-sizes
go-sizes = Lambda.Interpreter.Instrumented.Example.go-sizes
stack-sizes-go∼go-sizes =
Lambda.Interpreter.Instrumented.Example.stack-sizes-go∼go-sizes
lub-go-sizes-2 = Lambda.Interpreter.Instrumented.Example.lub-go-sizes-2
go-bounded-stack =
Lambda.Interpreter.Instrumented.Example.go-bounded-stack