Section Rosser's_Incompleteness.
Definition codeFormula := codeFormula LNN codeLNTFunction codeLNNRelation.
Variable T : System.
Hypothesis extendsNN : Included _ NN T.
Variable repT : Formula.
Variable v0 : nat.
Hypothesis
freeVarRepT : forall v : nat, In v (freeVarFormula LNN repT) -> v = v0.
Hypothesis
expressT1 :
forall f : Formula,
mem _ T f ->
SysPrf T (substituteFormula LNN repT v0 (natToTerm (codeFormula f))).
Hypothesis
expressT2 :
forall f : Formula,
~ mem _ T f ->
SysPrf T
(notH (substituteFormula LNN repT v0 (natToTerm (codeFormula f)))).
Definition codeSysPrf :=
codeSysPrf LNN codeLNTFunction codeLNNRelation codeArityLNTF codeArityLNNR
codeArityLNTFIsPR codeArityLNNRIsPR repT v0.
Definition codeSysPrfCorrect1 :=
codeSysPrfCorrect1 LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNTFIsCorrect1 codeArityLNNRIsPR
codeArityLNNRIsCorrect1 T extendsNN T repT v0 freeVarRepT expressT1.
Definition codeSysPrfCorrect2 :=
codeSysPrfCorrect2 LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNTFIsCorrect1 codeArityLNNRIsPR
codeArityLNNRIsCorrect1 T extendsNN T repT v0 freeVarRepT expressT2.
Definition codeSysPrfCorrect3 :=
codeSysPrfCorrect3 LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNTFIsCorrect1
codeArityLNTFIsCorrect2 codeArityLNNRIsPR codeArityLNNRIsCorrect1
codeArityLNNRIsCorrect2 codeLNTFunctionInj codeLNNRelationInj T extendsNN.
Definition codePrf := codePrf LNN codeLNTFunction codeLNNRelation.
Definition codeSysPrfNot :=
codeSysPrfNot LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNNRIsPR repT v0.
Definition freeVarCodeSysPrfN :=
freeVarCodeSysPrfN LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNNRIsPR repT v0 freeVarRepT.
Definition codeSysPrfNCorrect1 :=
codeSysPrfNCorrect1 LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNTFIsCorrect1 codeArityLNNRIsPR
codeArityLNNRIsCorrect1 T extendsNN T repT v0 freeVarRepT expressT1.
Definition codeSysPrfNCorrect2 :=
codeSysPrfNCorrect2 LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNTFIsCorrect1 codeArityLNNRIsPR
codeArityLNNRIsCorrect1 T extendsNN T repT v0 freeVarRepT expressT2.
Definition codeSysPrfNCorrect3 :=
codeSysPrfNCorrect3 LNN codeLNTFunction codeLNNRelation codeArityLNTF
codeArityLNNR codeArityLNTFIsPR codeArityLNTFIsCorrect1
codeArityLNTFIsCorrect2 codeArityLNNRIsPR codeArityLNNRIsCorrect1
codeArityLNNRIsCorrect2 codeLNTFunctionInj codeLNNRelationInj T extendsNN
repT v0 freeVarRepT.

Lemma searchProof :
(forall x : Formula, mem _ T x \/ ~ mem _ T x) ->
forall (a b : Formula) (A : Formulas) (p : Prf LNN A a),
(exists B : Formulas,
(exists q : Prf LNN B b,
codePrf _ _ q < S (codePrf _ _ p) /\
(forall x : Formula, In x B -> mem _ T x))) \/
(forall (B : Formulas) (q : Prf LNN B b),
codePrf _ _ q < S (codePrf _ _ p) ->
exists g : Formula, In g B /\ ~ mem _ T g).