true ? 0; 1 : nat if true as x return (x ? nat; bool) then 0 else true : nat Defining 'proj1' as keyword fun e : nat * nat => proj1 e : nat * nat -> nat Defining 'decomp' as keyword decomp (true, true) as t, u in (t, u) : bool * bool !(0 = 0) : Prop forall n : nat, n = 0 : Prop !(0 = 0) : Prop forall n : nat, #(n = n) : Prop forall n n0 : nat, ##(n = n0) : Prop forall n n0 : nat, ###(n = n0) : Prop 3 + 3 : Z 3 + 3 : znat [1; 2; 4] : list nat (1; 2, 4) : nat * nat * nat Defining 'ifzero' as keyword ifzero 3 : bool Defining 'pred' as keyword pred 3 : nat fun n : nat => pred n : nat -> nat fun n : nat => pred n : nat -> nat Defining 'ifn' as keyword Defining 'is' as keyword fun x : nat => ifn x is succ n then n else 0 : nat -> nat 1- : bool -4 : Z SUM (nat * nat) nat : Set FST (0; 1) : Z Nil : forall A : Type, list A NIL:list nat : list nat Defining 'I' as keyword (false && I 3)%bool /\ I 6 : Prop [|1, 2, 3; 4, 5, 6|] : Z * Z * Z * (Z * Z * Z) fun f : Z -> Z -> Z -> Z => {|f; 0; 1; 2|}:Z : (Z -> Z -> Z -> Z) -> Z plus : nat -> nat -> nat S : nat -> nat mult : nat -> nat -> nat le : nat -> nat -> Prop plus : nat -> nat -> nat succ : nat -> nat mult : nat -> nat -> nat le : nat -> nat -> Prop fun x : option Z => match x with | SOME x0 => x0 | NONE => 0 end : option Z -> Z fun x : option Z => match x with | SOME2 x0 => x0 | NONE2 => 0 end : option Z -> Z fun x : option Z => match x with | SOME3 x0 => x0 | NONE3 => 0 end : option Z -> Z