Section Consistent_Theory.
Variable T : System L.
Fixpoint interpTermsVector (value : nat -> U M) (n : nat)
(ts : Terms L n) {struct ts} : Vector.t (U M) n :=
match ts in (Terms _ n) return (Vector.t (U M) n) with
| Tnil => Vector.nil (U M)
| Tcons m t ts =>
Vector.cons (U M) (interpTerm value t) m (interpTermsVector value m ts)
end.

(* Specifications: *)
Lemma preserveValue :
forall value : nat -> U M,
(forall f : Formula L,
mem _ T f -> interpFormula value (nnTranslate f)) ->
forall g : Formula L, SysPrf L T g -> interpFormula value (nnTranslate g).
Lemma ModelConsistent :
forall value : nat -> U M,
(forall f : Formula L,
mem _ T f -> interpFormula value (nnTranslate f)) ->
Consistent L T.