proposition: Lemma to_falsity_id (phi : @form _ _ _ falsity_on) : to_falsity phi = phi.
proof: Proof. enough ((forall ff (phi : @form _ _ _ ff) (Heq : ff = falsity_on), to_falsity phi = match Heq in _ = fff return @form _ _ _ fff with eq_refl => phi end)) as H by apply (H _ _ eq_refl). clear phi. intros ff phi. induction phi; intros Heq; try congruence; try subst. - pattern Heq. unshelve eapply (@K_dec_type falsity_flag _ falsity_on _ _ Heq). 1:decide equality. easy. - easy. - cbn. rewrite IHphi1 with eq_refl. rewrite IHphi2 with eq_refl. easy. - cbn. rewrite IHphi with eq_refl. easy. Qed.
imports: Undecidability.Synthetic(Definitions DecidabilityFacts EnumerabilityFacts ListEnumerabilityFacts ReducibilityFacts) Undecidability(Shared.ListAutomation Shared.Dec) Coq(Eqdep_dec) Coq.Vectors.Vector Undecidability.Shared.Libs.PSL.Vectors(Vectors) EqdepFacts