Formula |
Def Formula
== rec(formula.Var+formula+(formula formula)+(formula formula)+(formula formula))
Thm* Formula Type
|
sequent_rank |
Def (S) == (S.H)+ (S.C)
Thm* Sequent  
|
list_rank |
Def (L) == reduce( x,y. (x)+y;0;L)
Thm* (Formula List)  
|
formula_rank |
Def
== (letrec formula_rank f = case f:
x 0;
  p (formula_rank(p)+1);
p  q (formula_rank(p)+formula_rank(q)+1);
p  q (formula_rank(p)+formula_rank(q)+1);
p   q (formula_rank(p)+formula_rank(q)+1); )
Thm* Formula  
|
gt |
Def i > j == j < i
Thm* i,j: . i > j Prop
|
list_exists |
Def x L.P(x)
== (letrec list_exists L = (Case of L; nil False ; h.t P(h) list_exists(t)) ) (L)
Thm* T:Type, P:(T Prop), L:T List. x L.P(x) Type
|
not |
Def A == A  False
Thm* A:Prop. ( A) Prop
|
Var |
Def Var == Atom
Thm* Var Type
|
formula_case |
Def case F:
x varC(x);
  p1 notC(p1);
p2  p3 andC(p2;p3);
p4  p5 orC(p4;p5);
p6   p7 impC(p6;p7);
== InjCase(F; x. varC(x); F.
InjCase(F; p1. notC(p1); F.
InjCase(F; x. x/p2,p3.andC(p2;p3); F. InjCase(F; x. x/p4,p5.orC(p4;p5), x/p6,p7.impC(p6;p7)))))
|
letrec_body |
Def = b == b
|
letrec_arg |
Def x b(x) (x) == b(x)
|
letrec |
Def (letrec f b(f)) == b((letrec f b(f)) ) (recursive)
|
C |
Def s.C == s.2
Thm* s:Sequent. s.C Formula List
|
H |
Def s.H == s.1
Thm* s:Sequent. s.H Formula List
|
reduce |
Def reduce(f;k;as) == Case of as; nil k ; a.as' f(a,reduce(f;k;as')) (recursive)
Thm* A,B:Type, f:(A B B), k:B, as:A List. reduce(f;k;as) B
|