Section Consistency_Induction_Step.
Context (cenv: composite_env)
(env: PTree.t A)
(l: list (positive * composite))
(i0: positive)
(co0: composite).
Hypothesis NOT_IN_LIST: ~ In i0 (map fst l).
Hypothesis RDT_list: Forall (relative_defined_type l) (map snd (co_members co0)).
Hypothesis CENV0: PTree.get i0 cenv = Some co0.
Hypothesis IH_In_equiv: forall i, In i (map fst l) <-> In i (map fst (PTree.elements env)).
Hypothesis IH_RDT:
forall i co a,
PTree.get i cenv = Some co ->
PTree.get i env = Some a ->
Forall (relative_defined_type (PTree.elements env)) (map snd (co_members co)).
Hypothesis IH_main:
Consistent cenv env.
End Consistency_Induction_Step.

Lemma Consistency: forall cenv l,
Permutation l (PTree.elements cenv) ->
ordered_composite l ->
Consistent cenv (Env l).