再帰理論
Shoenfield. Mathematical Logic.
Require Import classical_logic. Require Import partial_function. Require Import power. Set Implicit Arguments.n: natTypen: natTypeTypen: nat
IHn: TypeTypeexact unit.Typeexact (prod nat IHn). Defined.n: nat
IHn: TypeTypenats 2 -> natnats 2 -> natX: nats 2natexact (m + n). Defined.m, n: natnatnats 2 -> natnats 2 -> natX: nats 2natexact (m * n). Defined. Inductive recursive_function : forall n : nat, (nats n -> nat) -> Prop := | add : recursive_function 2 addition | mult : recursive_function 2 multiplication. Record partial_subset (A : Type) : Type := make_partial_subset { dom_ : power A; S :> power ({ a : A | a ∈ dom_ }); }.m, n: natnatA: Type
P: partial_subset AA ⇀ natA: Type
P: partial_subset AA ⇀ natA: Type
P: partial_subset Apower AA: Type
P: partial_subset A{a : A | a ∈ ?dom} -> natexact (P.(dom_)).A: Type
P: partial_subset Apower AA: Type
P: partial_subset A{a : A | a ∈ dom_ P} -> natA: Type
P: partial_subset A
X: {a : A | a ∈ dom_ P}natA: Type
P: partial_subset A
X: {a : A | a ∈ dom_ P}
H: (X ∈ P) + (~ X ∈ P)natA: Type
P: partial_subset A
X: {a : A | a ∈ dom_ P}
m: X ∈ PnatA: Type
P: partial_subset A
X: {a : A | a ∈ dom_ P}
n: ~ X ∈ Pnatexact 0.A: Type
P: partial_subset A
X: {a : A | a ∈ dom_ P}
m: X ∈ Pnatexact 1. Defined.A: Type
P: partial_subset A
X: {a : A | a ∈ dom_ P}
n: ~ X ∈ Pnat