proposition: Theorem GCH_AC {UA : Univalence} {PR : PropResizing} {LEM : ExcludedMiddle} : GCH -> Choice_type.
proof: Proof. intros gch. apply WO_AC. intros X. apply tr. exists (hartogs_number (Build_HSet (Build_HSet (nat + X) -> HProp))). unshelve eapply (@GCH_injects UA LEM PR hartogs_number _ 3 _ X gch). - intros Y. intros H. eapply merely_destruct; try apply H. apply hartogs_number_no_injection. - intros Y. apply tr. apply hartogs_number_injection. 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)