liquid-fixpoint-8.10.7: tests/proof/list01_adt.fq
fixpoint "--rewrite"
data Vec 1 = [
| VNil { }
| VCons { head : @(0), tail : Vec @(0)}
]
constant len: (func(1, [(Vec @(0)); int]))
define len(l: [a]) : int = {
if (is$VNil l) then 0 else (1 + len(tail l))
}
constraint:
env []
lhs {v : int | true }
rhs {v : int | len (VCons 1 (VCons 2 (VCons 3 VNil))) = 3}
id 1 tag []
expand [1 : True]