Module fc_weak (wf : fc_wf_sig) <: fc_weak_sig.
Set Bullet Behavior "Strict Subproofs".
Set Implicit Arguments.
(* Weakening *)
(* ------------------------------------------------------------------- *)
Definition AnnIso_respects_atoms_eq   := third  ann_respects_atoms_eq_mutual.
Definition AnnDefEq_respects_atoms_eq := fourth ann_respects_atoms_eq_mutual.
Instance AnnIso_atoms_eq_mor : Morphisms.Proper
(eq ==> AtomSetImpl.Equal ==> eq ==> eq ==> eq ==> iff)
AnnIso.
Instance AnnDefEq_atoms_eq_mor : Morphisms.Proper
(eq ==> AtomSetImpl.Equal ==> eq ==> eq ==> eq ==> iff)
AnnDefEq.

Lemma ann_strengthen_noncovar:
(forall G1  a A,   AnnTyping G1 a A -> True) /\
(forall G1  phi,   AnnPropWff G1 phi -> True) /\
(forall G1 D g p1 p2, AnnIso G1 D g p1 p2 -> forall x, not (exists phi, binds x (Co phi) G1) ->
AnnIso G1 (remove x D) g p1 p2) /\
(forall G1 D g A B,   AnnDefEq G1 D g A B ->  forall x, not (exists phi, binds x (Co phi) G1) ->
AnnDefEq G1 (remove x D) g A B) /\
(forall G1 ,       AnnCtx G1 -> True).