:: GOEDELCP semantic presentation

definition
let c1 be Subset of CQC-WFF ;
attr a1 is negation_faithful means :Def1: :: GOEDELCP:def 1
for b1 being Element of CQC-WFF holds
( a1 |- b1 or a1 |- 'not' b1 );
end;

:: deftheorem Def1 defines negation_faithful GOEDELCP:def 1 :
for b1 being Subset of CQC-WFF holds
( b1 is negation_faithful iff for b2 being Element of CQC-WFF holds
( b1 |- b2 or b1 |- 'not' b2 ) );

definition
let c1 be Subset of CQC-WFF ;
attr a1 is with_examples means :Def2: :: GOEDELCP:def 2
for b1 being bound_QC-variable
for b2 being Element of CQC-WFF holds
ex b3 being bound_QC-variable st a1 |- ('not' (Ex b1,b2)) 'or' (b2 . b1,b3);
end;

:: deftheorem Def2 defines with_examples GOEDELCP:def 2 :
for b1 being Subset of CQC-WFF holds
( b1 is with_examples iff for b2 being bound_QC-variable
for b3 being Element of CQC-WFF holds
ex b4 being bound_QC-variable st b1 |- ('not' (Ex b2,b3)) 'or' (b3 . b2,b4) );

theorem Th1: :: GOEDELCP:1
for b1 being Element of CQC-WFF
for b2 being Consistent Subset of CQC-WFF holds
( b2 is negation_faithful implies ( b2 |- b1 iff not b2 |- 'not' b1 ) ) by Def1, HENMODEL:def 3;

theorem Th2: :: GOEDELCP:2
for b1, b2 being Element of CQC-WFF
for b3 being FinSequence of CQC-WFF holds
( |- b3 ^ <*(('not' b1) 'or' b2)*> & |- b3 ^ <*b1*> implies |- b3 ^ <*b2*> )
proof end;

theorem Th3: :: GOEDELCP:3
for b1 being Subset of CQC-WFF
for b2 being Element of CQC-WFF
for b3 being bound_QC-variable holds
( b1 is with_examples implies ( b1 |- Ex b3,b2 iff ex b4 being bound_QC-variable st b1 |- b2 . b3,b4 ) )
proof end;

theorem Th4: :: GOEDELCP:4
for b1 being Element of CQC-WFF
for b2 being Consistent Subset of CQC-WFF
for b3 being Henkin_interpretation of b2 holds
( ( b2 is negation_faithful & b2 is with_examples implies ( b3, valH |= b1 iff b2 |- b1 ) ) & b2 is negation_faithful & b2 is with_examples implies ( b3, valH |= 'not' b1 iff b2 |- 'not' b1 ) ) by Def1, HENMODEL:def 3, VALUAT_1:28;

theorem Th5: :: GOEDELCP:5
for b1, b2 being Element of CQC-WFF
for b3 being FinSequence of CQC-WFF holds
( |- b3 ^ <*b1*> & |- b3 ^ <*b2*> implies |- b3 ^ <*(b1 '&' b2)*> )
proof end;

theorem Th6: :: GOEDELCP:6
for b1 being Subset of CQC-WFF
for b2, b3 being Element of CQC-WFF holds
( ( b1 |- b2 & b1 |- b3 ) iff b1 |- b2 '&' b3 )
proof end;

theorem Th7: :: GOEDELCP:7
for b1, b2 being Element of CQC-WFF
for b3 being Consistent Subset of CQC-WFF
for b4 being Henkin_interpretation of b3 holds
( ( b3 is negation_faithful & b3 is with_examples implies ( b4, valH |= b1 iff b3 |- b1 ) ) & ( b3 is negation_faithful & b3 is with_examples implies ( b4, valH |= b2 iff b3 |- b2 ) ) & b3 is negation_faithful & b3 is with_examples implies ( b4, valH |= b1 '&' b2 iff b3 |- b1 '&' b2 ) ) by Th6, VALUAT_1:29;

theorem Th8: :: GOEDELCP:8
for b1 being Consistent Subset of CQC-WFF
for b2 being Henkin_interpretation of b1
for b3 being Element of CQC-WFF holds
( QuantNbr b3 <= 0 & b1 is negation_faithful & b1 is with_examples implies ( b2, valH |= b3 iff b1 |- b3 ) )
proof end;

theorem Th9: :: GOEDELCP:9
for b1 being Element of CQC-WFF
for b2 being bound_QC-variable
for b3 being non empty set
for b4 being interpretation of b3
for b5 being Element of Valuations_in b3 holds
( b4,b5 |= Ex b2,b1 iff ex b6 being Element of b3 st b4,b5 . (b2 | b6) |= b1 )
proof end;

theorem Th10: :: GOEDELCP:10
for b1 being Element of CQC-WFF
for b2 being bound_QC-variable
for b3 being Consistent Subset of CQC-WFF
for b4 being Henkin_interpretation of b3 holds
( b4, valH |= Ex b2,b1 iff ex b5 being bound_QC-variable st b4, valH |= b1 . b2,b5 )
proof end;

theorem Th11: :: GOEDELCP:11
for b1 being Element of CQC-WFF
for b2 being bound_QC-variable
for b3 being non empty set
for b4 being interpretation of b3
for b5 being Element of Valuations_in b3 holds
( b4,b5 |= 'not' (Ex b2,('not' b1)) iff b4,b5 |= All b2,b1 )
proof end;

theorem Th12: :: GOEDELCP:12
for b1 being Subset of CQC-WFF
for b2 being Element of CQC-WFF
for b3 being bound_QC-variable holds
( b1 |- 'not' (Ex b3,('not' b2)) iff b1 |- All b3,b2 )
proof end;

theorem Th13: :: GOEDELCP:13
for b1 being Element of CQC-WFF
for b2 being bound_QC-variable holds QuantNbr (Ex b2,b1) = (QuantNbr b1) + 1
proof end;

theorem Th14: :: GOEDELCP:14
for b1 being Element of CQC-WFF
for b2, b3 being bound_QC-variable holds QuantNbr b1 = QuantNbr (b1 . b2,b3)
proof end;

theorem Th15: :: GOEDELCP:15
for b1 being Consistent Subset of CQC-WFF
for b2 being Henkin_interpretation of b1
for b3 being Element of CQC-WFF holds
( QuantNbr b3 = 1 & b1 is negation_faithful & b1 is with_examples implies ( b2, valH |= b3 iff b1 |- b3 ) )
proof end;

theorem Th16: :: GOEDELCP:16
for b1 being Consistent Subset of CQC-WFF
for b2 being Henkin_interpretation of b1
for b3 being Nat holds
( ( for b4 being Element of CQC-WFF holds
( QuantNbr b4 <= b3 & b1 is negation_faithful & b1 is with_examples implies ( b2, valH |= b4 iff b1 |- b4 ) ) ) implies for b4 being Element of CQC-WFF holds
( QuantNbr b4 <= b3 + 1 & b1 is negation_faithful & b1 is with_examples implies ( b2, valH |= b4 iff b1 |- b4 ) ) )
proof end;

theorem Th17: :: GOEDELCP:17
for b1 being Consistent Subset of CQC-WFF
for b2 being Henkin_interpretation of b1
for b3 being Element of CQC-WFF holds
( b1 is negation_faithful & b1 is with_examples implies ( b2, valH |= b3 iff b1 |- b3 ) )
proof end;

theorem Th18: :: GOEDELCP:18
QC-WFF is countable
proof end;

definition
func ExCl -> Subset of CQC-WFF means :Def3: :: GOEDELCP:def 3
for b1 being set holds
( b1 in a1 iff ex b2 being bound_QC-variableex b3 being Element of CQC-WFF st b1 = Ex b2,b3 );
existence
ex b1 being Subset of CQC-WFF st
for b2 being set holds
( b2 in b1 iff ex b3 being bound_QC-variableex b4 being Element of CQC-WFF st b2 = Ex b3,b4 )
proof end;
uniqueness
for b1, b2 being Subset of CQC-WFF holds
( ( for b3 being set holds
( b3 in b1 iff ex b4 being bound_QC-variableex b5 being Element of CQC-WFF st b3 = Ex b4,b5 ) ) & ( for b3 being set holds
( b3 in b2 iff ex b4 being bound_QC-variableex b5 being Element of CQC-WFF st b3 = Ex b4,b5 ) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def3 defines ExCl GOEDELCP:def 3 :
for b1 being Subset of CQC-WFF holds
( b1 = ExCl iff for b2 being set holds
( b2 in b1 iff ex b3 being bound_QC-variableex b4 being Element of CQC-WFF st b2 = Ex b3,b4 ) );

theorem Th19: :: GOEDELCP:19
CQC-WFF is countable by Th18, CARD_4:46;

theorem Th20: :: GOEDELCP:20
( not ExCl is empty & ExCl is countable )
proof end;

Lemma23: for b1 being non empty set holds
not ( b1 is countable & ( for b2 being Function holds
not ( dom b2 = NAT & b1 = rng b2 ) ) )
proof end;

definition
let c1 be Element of QC-WFF ;
assume E24: c1 is existential ;
func Ex-bound_in c1 -> bound_QC-variable means :Def4: :: GOEDELCP:def 4
ex b1 being Element of QC-WFF st a1 = Ex a2,b1;
existence
ex b1 being bound_QC-variableex b2 being Element of QC-WFF st c1 = Ex b1,b2
by E24, QC_LANG2:def 13;
uniqueness
for b1, b2 being bound_QC-variable holds
( ex b3 being Element of QC-WFF st c1 = Ex b1,b3 & ex b3 being Element of QC-WFF st c1 = Ex b2,b3 implies b1 = b2 )
by QC_LANG2:19;
end;

:: deftheorem Def4 defines Ex-bound_in GOEDELCP:def 4 :
for b1 being Element of QC-WFF holds
( b1 is existential implies for b2 being bound_QC-variable holds
( b2 = Ex-bound_in b1 iff ex b3 being Element of QC-WFF st b1 = Ex b2,b3 ) );

definition
let c1 be Element of CQC-WFF ;
assume E25: c1 is existential ;
func Ex-the_scope_of c1 -> Element of CQC-WFF means :Def5: :: GOEDELCP:def 5
ex b1 being bound_QC-variable st a1 = Ex b1,a2;
existence
ex b1 being Element of CQC-WFF ex b2 being bound_QC-variable st c1 = Ex b2,b1
proof end;
uniqueness
for b1, b2 being Element of CQC-WFF holds
( ex b3 being bound_QC-variable st c1 = Ex b3,b1 & ex b3 being bound_QC-variable st c1 = Ex b3,b2 implies b1 = b2 )
by QC_LANG2:19;
end;

:: deftheorem Def5 defines Ex-the_scope_of GOEDELCP:def 5 :
for b1 being Element of CQC-WFF holds
( b1 is existential implies for b2 being Element of CQC-WFF holds
( b2 = Ex-the_scope_of b1 iff ex b3 being bound_QC-variable st b1 = Ex b3,b2 ) );

definition
let c1 be Function of NAT , CQC-WFF ;
let c2 be Nat;
func bound_in c1,c2 -> bound_QC-variable means :Def6: :: GOEDELCP:def 6
for b1 being Element of CQC-WFF holds
( b1 = a1 . a2 implies a3 = Ex-bound_in b1 );
existence
ex b1 being bound_QC-variable st
for b2 being Element of CQC-WFF holds
( b2 = c1 . c2 implies b1 = Ex-bound_in b2 )
proof end;
uniqueness
for b1, b2 being bound_QC-variable holds
( ( for b3 being Element of CQC-WFF holds
( b3 = c1 . c2 implies b1 = Ex-bound_in b3 ) ) & ( for b3 being Element of CQC-WFF holds
( b3 = c1 . c2 implies b2 = Ex-bound_in b3 ) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def6 defines bound_in GOEDELCP:def 6 :
for b1 being Function of NAT , CQC-WFF
for b2 being Nat
for b3 being bound_QC-variable holds
( b3 = bound_in b1,b2 iff for b4 being Element of CQC-WFF holds
( b4 = b1 . b2 implies b3 = Ex-bound_in b4 ) );

definition
let c1 be Function of NAT , CQC-WFF ;
let c2 be Nat;
func the_scope_of c1,c2 -> Element of CQC-WFF means :Def7: :: GOEDELCP:def 7
for b1 being Element of CQC-WFF holds
( b1 = a1 . a2 implies a3 = Ex-the_scope_of b1 );
existence
ex b1 being Element of CQC-WFF st
for b2 being Element of CQC-WFF holds
( b2 = c1 . c2 implies b1 = Ex-the_scope_of b2 )
proof end;
uniqueness
for b1, b2 being Element of CQC-WFF holds
( ( for b3 being Element of CQC-WFF holds
( b3 = c1 . c2 implies b1 = Ex-the_scope_of b3 ) ) & ( for b3 being Element of CQC-WFF holds
( b3 = c1 . c2 implies b2 = Ex-the_scope_of b3 ) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def7 defines the_scope_of GOEDELCP:def 7 :
for b1 being Function of NAT , CQC-WFF
for b2 being Nat
for b3 being Element of CQC-WFF holds
( b3 = the_scope_of b1,b2 iff for b4 being Element of CQC-WFF holds
( b4 = b1 . b2 implies b3 = Ex-the_scope_of b4 ) );

definition
let c1 be Subset of CQC-WFF ;
func still_not-bound_in c1 -> Subset of bound_QC-variables equals :: GOEDELCP:def 8
union { (still_not-bound_in b1) where B is Element of CQC-WFF : b1 in a1 } ;
coherence
union { (still_not-bound_in b1) where B is Element of CQC-WFF : b1 in c1 } is Subset of bound_QC-variables
proof end;
end;

:: deftheorem Def8 defines still_not-bound_in GOEDELCP:def 8 :
for b1 being Subset of CQC-WFF holds still_not-bound_in b1 = union { (still_not-bound_in b2) where B is Element of CQC-WFF : b2 in b1 } ;

theorem Th21: :: GOEDELCP:21
for b1 being Subset of CQC-WFF
for b2 being Element of CQC-WFF holds
( b2 in b1 implies b1 |- b2 )
proof end;

theorem Th22: :: GOEDELCP:22
for b1 being Element of CQC-WFF
for b2 being bound_QC-variable holds
( Ex-bound_in (Ex b2,b1) = b2 & Ex-the_scope_of (Ex b2,b1) = b1 )
proof end;

theorem Th23: :: GOEDELCP:23
for b1 being Subset of CQC-WFF holds b1 |- VERUM
proof end;

theorem Th24: :: GOEDELCP:24
for b1 being Subset of CQC-WFF holds
( b1 |- 'not' VERUM iff not b1 is Consistent )
proof end;

theorem Th25: :: GOEDELCP:25
for b1 being Element of CQC-WFF
for b2, b3 being FinSequence of CQC-WFF holds
( 0 < len b2 & |- b2 ^ <*b1*> implies |- (((Ant b2) ^ b3) ^ <*(Suc b2)*>) ^ <*b1*> )
proof end;

theorem Th26: :: GOEDELCP:26
for b1 being Element of CQC-WFF holds still_not-bound_in {b1} = still_not-bound_in b1
proof end;

theorem Th27: :: GOEDELCP:27
for b1, b2 being Subset of CQC-WFF holds still_not-bound_in (b1 \/ b2) = (still_not-bound_in b1) \/ (still_not-bound_in b2)
proof end;

theorem Th28: :: GOEDELCP:28
for b1 being Subset of bound_QC-variables holds
not ( b1 is finite & ( for b2 being bound_QC-variable holds b2 in b1 ) )
proof end;

theorem Th29: :: GOEDELCP:29
for b1, b2 being Subset of CQC-WFF holds
( b1 c= b2 implies still_not-bound_in b1 c= still_not-bound_in b2 )
proof end;

theorem Th30: :: GOEDELCP:30
for b1 being FinSequence of CQC-WFF holds still_not-bound_in (rng b1) = still_not-bound_in b1
proof end;

theorem Th31: :: GOEDELCP:31
for b1 being Consistent Subset of CQC-WFF holds
not ( still_not-bound_in b1 is finite & ( for b2 being Consistent Subset of CQC-WFF holds
not ( b1 c= b2 & b2 is with_examples ) ) )
proof end;

theorem Th32: :: GOEDELCP:32
for b1, b2 being Subset of CQC-WFF
for b3 being Element of CQC-WFF holds
( b1 |- b3 & b1 c= b2 implies b2 |- b3 )
proof end;

theorem Th33: :: GOEDELCP:33
for b1 being Consistent Subset of CQC-WFF holds
not ( b1 is with_examples & ( for b2 being Consistent Subset of CQC-WFF holds
not ( b1 c= b2 & b2 is negation_faithful & b2 is with_examples ) ) )
proof end;

theorem Th34: :: GOEDELCP:34
for b1 being Consistent Subset of CQC-WFF holds
not ( still_not-bound_in b1 is finite & ( for b2 being Consistent Subset of CQC-WFF
for b3 being Henkin_interpretation of b2 holds
not b3, valH |= b1 ) )
proof end;

theorem Th35: :: GOEDELCP:35
for b1, b2 being Subset of CQC-WFF
for b3 being non empty set
for b4 being interpretation of b3
for b5 being Element of Valuations_in b3 holds
( b4,b5 |= b1 & b2 c= b1 implies b4,b5 |= b2 )
proof end;

theorem Th36: :: GOEDELCP:36
for b1 being Subset of CQC-WFF
for b2 being Element of CQC-WFF holds
( still_not-bound_in b1 is finite implies still_not-bound_in (b1 \/ {b2}) is finite )
proof end;

theorem Th37: :: GOEDELCP:37
for b1 being Subset of CQC-WFF
for b2 being Element of CQC-WFF
for b3 being non empty set
for b4 being interpretation of b3
for b5 being Element of Valuations_in b3 holds
not ( b1 |= b2 & b4,b5 |= b1 \/ {('not' b2)} )
proof end;

theorem Th38: :: GOEDELCP:38
for b1 being Subset of CQC-WFF
for b2 being Element of CQC-WFF holds
( still_not-bound_in b1 is finite & b1 |= b2 implies b1 |- b2 )
proof end;