lean4-htt/tests/lean/reduceArity.lean.expected.out
Henrik Böving dc70d0cc43
feat: split up the compiler SCC after lambda lifting (#12003)
This PR splits up the SCC that the compiler manages into (potentially)
multiple ones after
performing lambda lifting. This aids both the closed term extractor and
the elimDeadBranches pass as
they are both negatively influenced when more declarations than required
are within one SCC.
2026-01-14 18:36:25 +00:00

28 lines
889 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[Compiler.result] size: 9
def g._redArg (n : Nat) (a : lcAny) (f : lcAny → lcAny) : lcAny :=
let zero := 0;
let isZero := Nat.decEq n zero;
cases isZero : lcAny
| Bool.true =>
return a
| Bool.false =>
let one := 1;
let n.1 := Nat.sub n one;
let _x.2 := g._redArg n.1 a f;
let _x.3 := f _x.2;
return _x.3
[Compiler.result] size: 1
def g (α : ◾) (n : Nat) (a : lcAny) (b : lcAny) (f : lcAny → lcAny) : lcAny :=
let _x.1 := g._redArg n a f;
return _x.1
[Compiler.result] size: 1
def h._closed_0 : Nat → Nat :=
let _x.1 := double;
return _x.1
[Compiler.result] size: 4
def h (n : Nat) (a : Nat) : Nat :=
let _x.1 := h._closed_0;
let _x.2 := g._redArg n a _x.1;
let _x.3 := g._redArg a n _x.1;
let _x.4 := Nat.add _x.2 _x.3;
return _x.4