S, Pr, CN, PN, NP, Var, A1, A2, AC, V1, V2, VC, VD, C1, RC, F1, Dcl, Hyp

PredV1  : (A:CN)(Q:NP(A))(F:V1(A))S "Q F" ;

PredA1  : (A:CN)(F:A1(A))V1(A) "is F" ;

PredVC  : (A:CN)(B:CN)(Q:NP(A))(R:NP(B))(F:VC(A,B))S "Q and R F" ;

PredAC  : (A:CN)(B:CN)(F:AC(A,B))VC(A,B) "are F" ;

ComplV2 : (A:CN)(B:CN)(F:V2(A,B))(Q:NP(B))V1(A) "F Q" ;

ComplA2 : (A:CN)(B:CN)(F:A2(A,B))(Q:NP(B))A1(A) "F Q" ;

FractV2 : (A:CN)(B:CN)(Q:NP(A))(F:V2(A,B))VD(B) "Q F" ;

PredVD  : (B:CN)(F:VD(B))(Q:NP(B))S "F Q" ;

ConjS   : (C:C1)(A:S)(B:S)S "A C B" ;

ConjV1  : (C:C1)(A:CN)(F:V1(A))(G:V1(A))V1(A) "F C G" ;

ConjA1  : (C:C1)(A:CN)(F:A1(A))(G:A1(A))A1(A) "F C G" ;

ConjVD  : (C:C1)(B:CN)(F:VD(B))(G:VD(B))VD(B) "F C G" ;

ConjRC  : (C:C1)(A:CN)(F:RC(A))(G:RC(A))RC(A) "F C G" ;

ConjV2  : (C:C1)(A:CN)(B:CN)(F:V2(A,B))(G:V2(A,B))V2(A,B) "F C G" ;

ConjA2  : (C:C1)(A:CN)(B:CN)(F:A2(A,B))(G:A2(A,B))A2(A,B) "F C G" ;

ConjVC  : (C:C1)(A:CN)(B:CN)(F:VC(A,B))(G:VC(A,B))VC(A,B) "F C G" ;

ConjAC  : (C:C1)(A:CN)(B:CN)(F:AC(A,B))(G:AC(A,B))AC(A,B) "F C G" ;

RelV1   : (A:CN)(F:V1(A))RC(A) "that F" ;

RelVD   : (B:CN)(F:VD(B))RC(B) "that F" ;

ModCN   : (A:CN)(F:RC(A))CN "A F" ;

ApplF1  : (A:CN)(B:CN)(f:F1(A,B))(Q:NP(A))NP(B) "the f Q" ;

UseVar  : (A:CN)(v:Var(A))NP(A) "v" ;

Impl    : (A:S)(B:S)S "if A then B" ;

Decl    : (A:CN)(v:Var(A))Dcl "v is a A" ;

Hypo    : (A:CN)(v:Var(A))Hyp "let v be a A" ;

ConjI   : (A:S)(B:S)(a:Pr(A))(b:Pr(B))Pr(ConjS(A,B)) 
          "a LL b LL Altogether A and B" ;

ConjEl  : (A:S)(B:S)(c:Pr(Conj(A,B)))Pr(Conj(A)) 
          "c LL Afortiori A" ;

ConjEr  : (A:S)(B:S)(c:Pr(Conj(A,B)))Pr(Conj(B)) 
          "c LL Afortiori B" ;

ImplI   : (A:S)(B:S)(b:Pr(B))Pr(Impl(A,B))
          "Assume A LL b LL Hence if A then B" ;

ImplE   : (A:S)(B:S)(c:Pr(Impl(A,B)))(a:Pr(A))Pr(B) 
          "c LL a LL Hence B" ;

Ass     : (A:S)Pr(A) "by hypothesis A" ;

Ln      : CN "line" ;

Pt      : CN "point" ;

Cl      : CN "circle" ;

Va      : Var(Pt) "SaS" ;

Vb      : Var(Pt) "SbS" ;

Vl      : Var(Ln) "SlS" ;

Vm      : Var(Ln) "SmS" ;

Ct      : F1(Cl,Pt) "centre of" ;

Every   : (A:CN)NP(A) "every A" ;

Some    : (A:CN)NP(A) "some A" ;

Int     : V2(Ln,Ln) "intersects" ;

Cont    : V2(Ln,Pt) "contains" ;

Par     : A2(Ln,Ln) "parallel to" ;

Conv    : A2(Ln,Ln) "convergent with" ;

Inc     : A2(Pt,Ln) "incident with" ;

IncC    : VC(Ln,Ln) "intersect" ;

ConvVC  : VC(Ln,Ln) "converge" ;

ParC    : AC(Ln,Ln) "parallel" ;

ConvC   : AC(Ln,Ln) "convergent" ;

IncC    : AC(Pt,Ln) "incident" ;

And     : C1 "and" ;

Or      : C1 "or" ;
