lean4-htt/tests/lean/4089.lean.expected.out

38 lines
1.3 KiB
Text

[Compiler.IR] [reset_reuse]
def f (x_1 : obj) : obj :=
case x_1 : obj of
Prod.mk →
let x_2 : tobj := proj[0] x_1;
let x_3 : tobj := proj[1] x_1;
let x_5 : tobj := reset[2] x_1;
let x_4 : obj := reuse x_5 in ctor_0[Prod.mk] x_3 x_2;
ret x_4
[Compiler.IR] [reset_reuse]
def Sigma.toProd._redArg (x_1 : obj) : obj :=
case x_1 : obj of
Sigma.mk →
let x_2 : tobj := proj[0] x_1;
let x_3 : tobj := proj[1] x_1;
let x_5 : tobj := reset[2] x_1;
let x_4 : obj := reuse x_5 in ctor_0[Prod.mk] x_2 x_3;
ret x_4
def Sigma.toProd (x_1 : ◾) (x_2 : ◾) (x_3 : obj) : obj :=
let x_4 : obj := Sigma.toProd._redArg x_3;
ret x_4
[Compiler.IR] [reset_reuse]
def foo (x_1 : tobj) : tobj :=
case x_1 : tobj of
List.nil →
let x_2 : tagged := ctor_0[List.nil];
ret x_2
List.cons →
let x_3 : tobj := proj[0] x_1;
case x_3 : obj of
Prod.mk →
let x_4 : tobj := proj[1] x_1;
let x_10 : tobj := reset[2] x_1;
let x_5 : tobj := proj[0] x_3;
let x_6 : tobj := proj[1] x_3;
let x_7 : tobj := foo x_4;
let x_8 : obj := reuse x_10 in ctor_1[List.cons] x_5 x_7;
ret x_8