18 lines
405 B
Text
18 lines
405 B
Text
open tactic decidable
|
|
|
|
definition foo (A B : Type) := A → B
|
|
|
|
definition boo (c : bool) :=
|
|
cond c nat bool
|
|
|
|
definition bla (a : nat) : boo (to_bool (a > 0)) → foo nat nat :=
|
|
λ v x, a + x
|
|
|
|
example : true :=
|
|
by do
|
|
bla ← mk_const `bla,
|
|
infer_type bla >>= trace,
|
|
n ← get_arity bla,
|
|
trace ("n arity: " ++ to_string n),
|
|
when (n ≠ 3) (fail "bla is expected to have arity 3"),
|
|
constructor
|