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.

Lemma establish_RDT:
forall i co a,
PTree.get i cenv = Some co ->
PTree.get i (env_rec i0 co0 env) = Some a ->
Forall (relative_defined_type (PTree.elements (env_rec i0 co0 env))) (map snd (co_members co)).