Fixpoint ExpressibleHelp (n : nat) : naryRel n -> Formula -> Prop :=
match n return (naryRel n -> Formula -> Prop) with
| O =>
fun (R : naryRel 0) (A : Formula) =>
match R with
| true => SysPrf T A
| false => SysPrf T (notH A)
end
| S m =>
fun (R : naryRel (S m)) (A : Formula) =>
forall a : nat,
ExpressibleHelp m (R a) (substituteFormula LNN A (S m) (natToTerm a))
end.
Definition Expressible (n : nat) (R : naryRel n) (A : Formula) : Prop :=
(forall v : nat, In v (freeVarFormula LNN A) -> v <= n /\ v <> 0) /\
ExpressibleHelp n R A.

(* Specifications: *)
Lemma expressibleAlternate :
forall (n : nat) (R : naryRel n) (A B : Formula),
SysPrf T (iffH A B) -> ExpressibleHelp n R A -> ExpressibleHelp n R B.