7 goal g: forall l: list int. length l = 0
9 type int_type = Integer int
11 (*********************************
12 ** Non-terminating projections **
13 *********************************)
14 (* Warning: if definition of the following projections are present,
15 the proof of everything below will not terminate. *)
16 function projfl [@model_trace:.projfl] (l : list int_type) : int
20 | Cons (Integer n) _ -> n
23 meta "inline:no" function projfl
24 meta "model_projection" function projfl
26 (* list int_type will be projected using projfl to int,
27 int will be projected using projfi, projf1, and projf2
28 Warning: does not terminate. *)
29 let proj_test ( l [@model_projected] : list int_type) : int
30 ensures { result > 0 }
34 | Cons (Integer n) _ -> n