proposition: Lemma ZCONSTR_INJ {A : Type'} c1 i1 r1 c2 i2 r2 : @ZCONSTR A c1 i1 r1 = ZCONSTR c2 i2 r2 -> c1 = c2 /\ i1 = i2 /\ r1 = r2.
proof: Proof. unfold ZCONSTR. intro e. rewrite INJP_INJ in e. destruct e as [e1 e2]. rewrite INJN_INJ in e1. rewrite INJP_INJ in e2. destruct e2 as [e2 e3]. rewrite INJA_INJ in e2. rewrite INJF_INJ in e3. auto. Qed.
imports: Coq.Logic.ClassicalEpsilon ClassicalFacts PropExtensionalityFacts Lia PeanoNat ProofIrrelevance