FOcdint.FO_CDInt_GHC
Require Import List.
Export ListNotations.
Require Import Ensembles.
Require Import PeanoNat.
Require Import genT gen.
Require Import FO_CDInt_Syntax.
Local Set Implicit Arguments.
Local Unset Strict Implicit.
(* In this file we define a Hilbert calculus based on sets for the first-order
constant domain intuitionistic logic FOCDIL. *)
Section FOCDIH.
Context {Σ_funcs : funcs_signature}.
Context {Σ_preds : preds_signature}.
(* We define here the axioms. *)
Inductive Axioms (F : form) : Prop :=
| A1 A B : F = (A --> (B --> A)) -> Axioms F
| A2 A B C : F = (A --> (B --> C)) --> ((A --> B) --> (A --> C)) -> Axioms F
| A3 A B : F = A --> (A ∨ B) -> Axioms F
| A4 A B : F = B --> (A ∨ B) -> Axioms F
| A5 A B C : F = (A --> C) --> ((B --> C) --> ((A ∨ B) --> C)) -> Axioms F
| A6 A B : F = (A ∧ B) --> A -> Axioms F
| A7 A B : F = (A ∧ B) --> B -> Axioms F
| A8 A B C : F = (A --> B) --> ((A --> C) --> (A --> (B ∧ C))) -> Axioms F
| A9 A : F = ⊥ --> A -> Axioms F
| QA1 A B : F = (∀ (A[↑] --> B)) --> (A --> ∀ B) -> Axioms F
| QA2 A t : F = (∀ A) --> A[t..] -> Axioms F
| QA3 A t : F = (A[t..] --> ∃ A) -> Axioms F
| CD A B : F = ((∀(A ∨ B[↑])) --> ((∀ A) ∨ B)) -> Axioms F.
(* We define our calculus FOCDIH. *)
Inductive FOCDIH_prv : (form -> Prop) -> form -> Prop :=
| Id Γ A : In _ Γ A -> FOCDIH_prv Γ A
| Ax Γ A : Axioms A -> FOCDIH_prv Γ A
| MP Γ A B : FOCDIH_prv Γ (A --> B) -> FOCDIH_prv Γ A -> FOCDIH_prv Γ B
| Gen Γ A : FOCDIH_prv (fun x => exists B, ((x = (subst_form ↑) B) /\ In _ Γ B)) A -> FOCDIH_prv Γ (∀ A)
| EC Γ A B : FOCDIH_prv (fun x => exists B, ((x = (subst_form ↑) B) /\ In _ Γ B)) (A --> (B[↑])) -> FOCDIH_prv Γ ((∃ A) --> B).
(* Define the general notion of derivable pair. *)
Fixpoint list_disj (l : list form) : form :=
match l with
| nil => ⊥
| h :: t => h ∨ (list_disj t)
end.
Fixpoint list_conj (l : list form) : form :=
match l with
| nil => ⊤
| h :: t => h ∧ (list_conj t)
end.
Definition pair_der Γ Δ : Prop :=
exists (l : list form), NoDup l /\ (forall A, List.In A l -> Δ A) /\
FOCDIH_prv Γ (list_disj l).
End FOCDIH.
Export ListNotations.
Require Import Ensembles.
Require Import PeanoNat.
Require Import genT gen.
Require Import FO_CDInt_Syntax.
Local Set Implicit Arguments.
Local Unset Strict Implicit.
(* In this file we define a Hilbert calculus based on sets for the first-order
constant domain intuitionistic logic FOCDIL. *)
Section FOCDIH.
Context {Σ_funcs : funcs_signature}.
Context {Σ_preds : preds_signature}.
(* We define here the axioms. *)
Inductive Axioms (F : form) : Prop :=
| A1 A B : F = (A --> (B --> A)) -> Axioms F
| A2 A B C : F = (A --> (B --> C)) --> ((A --> B) --> (A --> C)) -> Axioms F
| A3 A B : F = A --> (A ∨ B) -> Axioms F
| A4 A B : F = B --> (A ∨ B) -> Axioms F
| A5 A B C : F = (A --> C) --> ((B --> C) --> ((A ∨ B) --> C)) -> Axioms F
| A6 A B : F = (A ∧ B) --> A -> Axioms F
| A7 A B : F = (A ∧ B) --> B -> Axioms F
| A8 A B C : F = (A --> B) --> ((A --> C) --> (A --> (B ∧ C))) -> Axioms F
| A9 A : F = ⊥ --> A -> Axioms F
| QA1 A B : F = (∀ (A[↑] --> B)) --> (A --> ∀ B) -> Axioms F
| QA2 A t : F = (∀ A) --> A[t..] -> Axioms F
| QA3 A t : F = (A[t..] --> ∃ A) -> Axioms F
| CD A B : F = ((∀(A ∨ B[↑])) --> ((∀ A) ∨ B)) -> Axioms F.
(* We define our calculus FOCDIH. *)
Inductive FOCDIH_prv : (form -> Prop) -> form -> Prop :=
| Id Γ A : In _ Γ A -> FOCDIH_prv Γ A
| Ax Γ A : Axioms A -> FOCDIH_prv Γ A
| MP Γ A B : FOCDIH_prv Γ (A --> B) -> FOCDIH_prv Γ A -> FOCDIH_prv Γ B
| Gen Γ A : FOCDIH_prv (fun x => exists B, ((x = (subst_form ↑) B) /\ In _ Γ B)) A -> FOCDIH_prv Γ (∀ A)
| EC Γ A B : FOCDIH_prv (fun x => exists B, ((x = (subst_form ↑) B) /\ In _ Γ B)) (A --> (B[↑])) -> FOCDIH_prv Γ ((∃ A) --> B).
(* Define the general notion of derivable pair. *)
Fixpoint list_disj (l : list form) : form :=
match l with
| nil => ⊥
| h :: t => h ∨ (list_disj t)
end.
Fixpoint list_conj (l : list form) : form :=
match l with
| nil => ⊤
| h :: t => h ∧ (list_conj t)
end.
Definition pair_der Γ Δ : Prop :=
exists (l : list form), NoDup l /\ (forall A, List.In A l -> Δ A) /\
FOCDIH_prv Γ (list_disj l).
End FOCDIH.