proposition: Lemma path_pred_sum X (p : X -> HProp) : X = sig p + sig (fun x => ~ p x).
proof: Proof. apply path_universe_uncurried. srapply equiv_adjointify. - intros x. destruct (LEM (p x) _) as [H|H]; [left | right]; now exists x. - intros [[x _]|[x _]]; exact x. - cbn. intros [[x Hx]|[x Hx]]; destruct LEM as [H|H]; try contradiction. + enough (H = Hx) as -> by reflexivity. apply path_ishprop. + enough (H = Hx) as -> by reflexivity. apply path_forall. now intros HP. - cbn. intros x. now destruct LEM. Qed.
imports: HoTT(TruncType ExcludedMiddle abstract_algebra) HoTT(PropResizing.PropResizing) HoTT(Spaces.Nat.Core Spaces.Card) HoTT(Equiv.BiInv) HoTT(HIT.unique_choice) HoTT.Sets(Ordinals Hartogs Powers GCH AC)