Local Open Scope logic_base.
Local Open Scope syntax.
Section IntuitionisticDerivedRules.
Context {L: Language}
{minL: MinimunLanguage L}
{pL: PropositionalLanguage L}
{mL: ModalLanguage L}
{Gamma: ProofTheory L}
{minAX: MinimunAxiomatization L Gamma}
{ipGamma: IntuitionisticPropositionalLogic L Gamma}
{KmGamma: SystemK L Gamma}.

(* Specifications: *)
Lemma boxp_andp: forall x y, |-- boxp (x && y) <--> (boxp x && boxp y).
Lemma orp_boxp: forall x y, |-- boxp x || boxp y --> boxp (x || y).
Lemma boxp_TT: |-- boxp TT.
Lemma not_diamondp_FF: |-- ~~ diamondp FF.
Lemma impp_diamondp: forall x y, |-- boxp (x --> y) --> (diamondp x --> diamondp y).
(* Lemma derivable_impp_diamondp: forall Phi x y, Phi |-- boxp (x --> y) --> (diamondp x --> diamondp y).  Lemma deduction_impp_diamondp: forall Phi x y, Phi |-- boxp (x --> y) -> Phi |-- (diamondp x --> diamondp y). *)
Lemma diamondp_andp: forall x y, |-- diamondp (x && y) --> (diamondp x && diamondp y).
Lemma orp_diamondp: forall x y, |-- diamondp x || diamondp y --> diamondp (x || y).
Lemma P_diamondp_P {TmGamma: SystemT L Gamma}: forall x, |-- x --> diamondp x.
End IntuitionisticDerivedRules.