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.
Lemma Representable2Expressible : forall (n : nat) (R : naryRel n) (A : Formula), Representable n (charFunction n R) A -> Expressible n R (substituteFormula LNN A 0 (natToTerm 1)).