Exercise logic.propositional.consequence

Description
Prove that formula is a logical consequence of a set of formulas

Derivation

p -> q, r -> s => (p /\ r) -> (q /\ s)
conj-intro, initial=TList [TCon logic1.implies [TVar "p",TVar "q"],TCon logic1.implies [TVar "r",TVar "s"]]
(p -> q) /\ (r -> s) => (p /\ r) -> (q /\ s)
logic.propositional.defimpl
(~p || q) /\ (r -> s) => (p /\ r) -> (q /\ s)
logic.propositional.defimpl
(~p || q) /\ (~r || s) => (p /\ r) -> (q /\ s)
logic.propositional.defimpl
(~p || q) /\ (~r || s) => ~(p /\ r) || (q /\ s)
logic.propositional.demorganand
(~p || q) /\ (~r || s) => ~p || ~r || (q /\ s)
logic.propositional.oroverand
(~p || q) /\ (~r || s) => (~p || ~r || q) /\ (~p || ~r || s)
commor.sort
(~p || q) /\ (~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
introfalseleft
(F || ~p || q) /\ (~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
introcompl
((r /\ ~r) || ~p || q) /\ (~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
logic.propositional.oroverand
(r || ~p || q) /\ (~r || ~p || q) /\ (~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
commor.sort
(~p || q || r) /\ (~r || ~p || q) /\ (~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
commor.sort
(~p || q || r) /\ (~p || q || ~r) /\ (~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
introfalseleft
(~p || q || r) /\ (~p || q || ~r) /\ (F || ~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
introcompl
(~p || q || r) /\ (~p || q || ~r) /\ ((p /\ ~p) || ~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
logic.propositional.oroverand
(~p || q || r) /\ (~p || q || ~r) /\ (p || ~r || s) /\ (~p || ~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
command-subset
(~p || q || ~r) /\ (~p || ~r || s) /\ (~p || q || r) /\ (p || ~r || s) => (~p || q || ~r) /\ (~p || ~r || s)
conj-elim
(~p || q || ~r) /\ (~p || ~r || s) => (~p || q || ~r) /\ (~p || ~r || s)