(** Using subtypes to relativize the domain, independence of general
    premises is equivalent to excluded-middle in the theory of Boolean
    values (see Kirst and Zeng, 2024) *)

Notation "x .1" := (projT1 x) (at level 1, left associativity, format "x .1").Notation "( x ; y )" := (existT _ x y) (at level 0, format "'[' ( x ;  '/  ' y ) ']'").Definition RelativizedIndependenceOfGeneralPremises A (P : A -> Prop) :=
  IndependenceOfGeneralPremises {a:A & P a}.

(* Specifications: *)
Lemma relativized_independence_general_premises_excluded_middle : (forall P, RelativizedIndependenceOfGeneralPremises bool P) -> excluded_middle.