Require Import mathcomp.ssreflect.ssreflect.
Require Import CTL_def hilbert hilbert_hist.
Set Implicit Arguments.
Import Prenex Implicits.
Require Import CTL_def hilbert hilbert_hist.
Set Implicit Arguments.
Import Prenex Implicits.
Axiomatization of Lange and Stirling
The defined logical operations are only available once the respective
records (pSystem etc.) have been declared. Hence we introduce local notations
and later restate some of the axioms and rules using the defined notations from
modular_hilbert.v
Definition fEX s := (~~: fAX (~~: s)).
Definition fER s t := (~~: fAU (~~: s) (~~: t)).
Inductive prv : form -> Prop :=
| rMP s t : prv (s ---> t) -> prv s -> prv t
| axK s t : prv (s ---> t ---> s)
| axS s t u : prv ((u ---> s ---> t) ---> (u ---> s) ---> u ---> t)
| axDN s : prv (((s ---> fF) ---> fF) ---> s)
| rNec s : prv s -> prv (fAX s)
| axN s t : prv (fAX (s ---> t) ---> fAX s ---> fAX t)
| axSer s : prv (fAX (~~: s) ---> ~~: fAX s)
| axARf' s t : prv (fAR s t ---> t :/\: (s :\/: fAX (fAR s t)))
| ARel' s t u :
prv (u ---> t :/\: (s :\/: fAX (fAR (s :\/: u) (t :\/: u)))) ->
prv (u ---> fAR s t)
| axERf' s t : prv (fER s t ---> t :/\: (s :\/: fEX (fER s t)))
| ERel' s t u :
prv (u ---> t :/\: (s :\/: fEX (fER (s :\/: u) (t :\/: u)))) ->
prv (u ---> fER s t)
| axAUcmp' s t : prv (fAU s t <--> ~~: fER (~~: s) (~~: t)).
End Hilbert.
Canonical Structure prv_mSystem := MSystem rMP axK axS.
Canonical Structure prv_pSystem := PSystem axDN.
Canonical Structure prv_kSystem := KSystem rNec axN.
restate axioms/rule using notations from modular_hilbert.v
Lemma ARel s t u :
prv (u ---> t :/\: (s :\/: fAX (fAR (s :\/: u) (t :\/: u)))) ->
prv (u ---> fAR s t).
Lemma axARf s t : prv (fAR s t ---> t :/\: (s :\/: fAX (fAR s t))).
Lemma ERel s t u :
prv (u ---> t :/\: (s :\/: fEX (fER (s :\/: u) (t :\/: u)))) ->
prv (u ---> fER s t).
Lemma axERf s t : prv (fER s t ---> t :/\: (s :\/: fEX (fER s t))).
Lemma axAUcmp s t : prv (fAU s t <--> ~~: fER (~~: s) (~~: t)).
Completeness
Rules/Axioms of inductive Hilbert system
Lemma AR_ind s t u : prv (u ---> t) -> prv (u ---> (s ---> fF) ---> fAX u) -> prv (u ---> fAR s t).
Lemma axARE s t : prv (fAR s t ---> t).
Lemma axARu s t : prv (fAR s t ---> ~~: s ---> fAX (fAR s t)).
Lemma AU_ind s t u : prv (t ---> u) -> prv (s ---> fAX u ---> u) -> prv ((fAU s t) ---> u).
Lemma axAUI s t : prv (t ---> fAU s t).
Lemma axAUf s t : prv (s ---> fAX (fAU s t) ---> fAU s t).
Lemma ax_serial : prv (~~: (fAX fF)).
End LS.
Theorem LS_translation s : IC.prv s -> LS.prv s.
Soundness
Import IC.
The lemmas below correspond, up to propositional reasoning, to the hilbert
lemmas for the soundness proof of the Gentzen system (file hilbert_hist.v)
Lemma ERel (s t u : form) :
prv (u ---> t :/\: (s :\/: EX (ER (s :\/: u) (t :\/: u)))) ->
prv (u ---> ER s t).
Lemma ARel s t u :
prv (u ---> t :/\: (s :\/: AX (AR (s :\/: u) (t :\/: u)))) ->
prv (u ---> AR s t).
Lemma axARf s t : prv (fAR s t ---> t :/\: (s :\/: fAX (fAR s t))).
Lemma axERf s t : prv (ER s t ---> t :/\: (s :\/: EX (ER s t))).
Lemma axAUcmp s t : prv (fAU s t <--> ~~: ER (~~: s) (~~: t)).
Lemma axSer s : prv (fAX (~~: s) ---> ~~: fAX s).
Lemma LS_sound s : LS.prv s -> prv s.