(** ** Independence of general premises and drinker's paradox *)

(** Independence of general premises is the unconstrained
    (i.e. without the constraint of the premise being negative)
    version of the Independence of Premises considered in
    [[Troelstra73]].

    In the context of intuitionistic arithmetic (and actually already
    in the context of the theory of Boolean values), it generalizes
    the right distributivity of implication over disjunction (and
    hence Gödel-Dummett axiom). Note contrastingly that both the usual
    constrained independence of premises and the right distributivity
    of implication formula over distributivity with the constraint
    that the implication is from a negative formula (that is
    Kreisel-Putnam principle [[KreiselPutnam57]]) preserve the
    disjunction property.

    In the context of predicate logic, the Independence of general
    premises is however weaker than the right distributivity of
    implication over disjunction (hence of Gödel-Dummett axiom) since
    its restriction to a singleton domain makes it collapse to an
    intuitionistic propositional tautology while right distributivity
    of implication over disjunction is definitely not
    intuitionistically propositionally provable (consider the Kripke
    model with a root node splitting into an node with C and A and an
    other node with C and B).

    [[KreiselPutnam57]], Georg Kreisel and Hilary Putnam. "Eine
    Unableitsbarkeitsbeweismethode für den intuitionistischen
    Aussagenkalkül". Archiv für Mathematische Logik und
    Graundlagenforschung, 3:74- 78, 1957.

    [[Troelstra73]], Anne Troelstra, editor. Metamathematical
    Investigation of Intuitionistic Arithmetic and Analysis, volume
    344 of Lecture Notes in Mathematics, Springer-Verlag, 1973.
*)

Definition IndependenceOfGeneralPremises A :=
  forall (P:A -> Prop) (Q:Prop),
    inhabited A -> (Q -> exists x, P x) -> exists x, Q -> P x.

Lemma independence_general_premises_right_distr_implication_over_disjunction : IndependenceOfGeneralPremises bool -> RightDistributivityImplicationOverDisjunction.