Definition Formula := Formula LNT.Definition Formulas := Formulas LNT.Definition System := System LNT.Definition Sentence := Sentence LNT.Definition Term := Term LNT.Definition Terms := Terms LNT.Definition var := var LNT.Definition equal := equal LNT.Definition impH := impH LNT.Definition notH := notH LNT.Definition iffH := iffH LNT.Definition forallH := forallH LNT.Definition orH := orH LNT.Definition andH := andH LNT.Definition existH := existH LNT.Definition ifThenElseH := ifThenElseH LNT.Definition SysPrf := SysPrf LNT.Definition Plus (x y : Term) : Term :=
  apply LNT Plus (Tcons LNT 1 x (Tcons LNT 0 y (Tnil LNT))).Definition Times (x y : Term) : Term :=
  apply LNT Times (Tcons LNT 1 x (Tcons LNT 0 y (Tnil LNT))).Definition Succ (x : Term) : Term :=
  apply LNT Succ (Tcons LNT 0 x (Tnil LNT)).Definition Zero : Term := apply LNT Zero (Tnil LNT).

Lemma impI : forall (T : System) (f g : Formula), SysPrf (Ensembles.Add _ T g) f -> SysPrf T (impH g f).