:: VALUAT_1 semantic presentation

definition
let c1 be set ;
func Valuations_in c1 -> set equals :: VALUAT_1:def 1
Funcs bound_QC-variables ,a1;
coherence
Funcs bound_QC-variables ,c1 is set
;
end;

:: deftheorem Def1 defines Valuations_in VALUAT_1:def 1 :
for b1 being set holds Valuations_in b1 = Funcs bound_QC-variables ,b1;

registration
let c1 be non empty set ;
cluster Valuations_in a1 -> non empty functional ;
coherence
( not Valuations_in c1 is empty & Valuations_in c1 is functional )
proof end;
end;

theorem Th1: :: VALUAT_1:1
canceled;

theorem Th2: :: VALUAT_1:2
for b1 being non empty set
for b2 being set st b2 is Element of Valuations_in b1 holds
b2 is Function of bound_QC-variables ,b1
proof end;

definition
let c1 be non empty set ;
redefine func Valuations_in as Valuations_in c1 -> FUNCTION_DOMAIN of bound_QC-variables ,a1;
coherence
Valuations_in c1 is FUNCTION_DOMAIN of bound_QC-variables ,c1
proof end;
end;

definition
let c1 be Function;
attr a1 is boolean-valued means :Def2: :: VALUAT_1:def 2
rng a1 c= BOOLEAN ;
end;

:: deftheorem Def2 defines boolean-valued VALUAT_1:def 2 :
for b1 being Function holds
( b1 is boolean-valued iff rng b1 c= BOOLEAN );

registration
cluster boolean-valued set ;
existence
ex b1 being Function st b1 is boolean-valued
proof end;
end;

registration
let c1 be boolean-valued Function;
let c2 be set ;
cluster a1 . a2 -> boolean ;
coherence
c1 . c2 is boolean
proof end;
end;

registration
let c1 be set ;
cluster -> boolean-valued Element of Funcs a1,BOOLEAN ;
coherence
for b1 being Element of Funcs c1,BOOLEAN holds b1 is boolean-valued
proof end;
end;

definition
let c1 be boolean-valued Function;
func 'not' c1 -> Function means :Def3: :: VALUAT_1:def 3
( dom a2 = dom a1 & ( for b1 being set st b1 in dom a1 holds
a2 . b1 = 'not' (a1 . b1) ) );
existence
ex b1 being Function st
( dom b1 = dom c1 & ( for b2 being set st b2 in dom c1 holds
b1 . b2 = 'not' (c1 . b2) ) )
proof end;
uniqueness
for b1, b2 being Function st dom b1 = dom c1 & ( for b3 being set st b3 in dom c1 holds
b1 . b3 = 'not' (c1 . b3) ) & dom b2 = dom c1 & ( for b3 being set st b3 in dom c1 holds
b2 . b3 = 'not' (c1 . b3) ) holds
b1 = b2
proof end;
let c2 be boolean-valued Function;
func c1 '&' c2 -> Function means :Def4: :: VALUAT_1:def 4
( dom a3 = (dom a1) /\ (dom a2) & ( for b1 being set st b1 in dom a3 holds
a3 . b1 = (a1 . b1) '&' (a2 . b1) ) );
existence
ex b1 being Function st
( dom b1 = (dom c1) /\ (dom c2) & ( for b2 being set st b2 in dom b1 holds
b1 . b2 = (c1 . b2) '&' (c2 . b2) ) )
proof end;
uniqueness
for b1, b2 being Function st dom b1 = (dom c1) /\ (dom c2) & ( for b3 being set st b3 in dom b1 holds
b1 . b3 = (c1 . b3) '&' (c2 . b3) ) & dom b2 = (dom c1) /\ (dom c2) & ( for b3 being set st b3 in dom b2 holds
b2 . b3 = (c1 . b3) '&' (c2 . b3) ) holds
b1 = b2
proof end;
commutativity
for b1 being Function
for b2, b3 being boolean-valued Function st dom b1 = (dom b2) /\ (dom b3) & ( for b4 being set st b4 in dom b1 holds
b1 . b4 = (b2 . b4) '&' (b3 . b4) ) holds
( dom b1 = (dom b3) /\ (dom b2) & ( for b4 being set st b4 in dom b1 holds
b1 . b4 = (b3 . b4) '&' (b2 . b4) ) )
;
end;

:: deftheorem Def3 defines 'not' VALUAT_1:def 3 :
for b1 being boolean-valued Function
for b2 being Function holds
( b2 = 'not' b1 iff ( dom b2 = dom b1 & ( for b3 being set st b3 in dom b1 holds
b2 . b3 = 'not' (b1 . b3) ) ) );

:: deftheorem Def4 defines '&' VALUAT_1:def 4 :
for b1, b2 being boolean-valued Function
for b3 being Function holds
( b3 = b1 '&' b2 iff ( dom b3 = (dom b1) /\ (dom b2) & ( for b4 being set st b4 in dom b3 holds
b3 . b4 = (b1 . b4) '&' (b2 . b4) ) ) );

registration
let c1 be boolean-valued Function;
cluster 'not' a1 -> boolean-valued ;
coherence
'not' c1 is boolean-valued
proof end;
let c2 be boolean-valued Function;
cluster a1 '&' a2 -> boolean-valued ;
coherence
c1 '&' c2 is boolean-valued
proof end;
end;

definition
let c1 be non empty set ;
let c2 be Element of Funcs c1,BOOLEAN ;
redefine func 'not' as 'not' c2 -> Element of Funcs a1,BOOLEAN means :Def5: :: VALUAT_1:def 5
for b1 being Element of a1 holds a3 . b1 = 'not' (a2 . b1);
coherence
'not' c2 is Element of Funcs c1,BOOLEAN
proof end;
compatibility
for b1 being Element of Funcs c1,BOOLEAN holds
( b1 = 'not' c2 iff for b2 being Element of c1 holds b1 . b2 = 'not' (c2 . b2) )
proof end;
let c3 be Element of Funcs c1,BOOLEAN ;
redefine func '&' as c2 '&' c3 -> Element of Funcs a1,BOOLEAN means :Def6: :: VALUAT_1:def 6
for b1 being Element of a1 holds a4 . b1 = (a2 . b1) '&' (a3 . b1);
coherence
c2 '&' c3 is Element of Funcs c1,BOOLEAN
proof end;
compatibility
for b1 being Element of Funcs c1,BOOLEAN holds
( b1 = c2 '&' c3 iff for b2 being Element of c1 holds b1 . b2 = (c2 . b2) '&' (c3 . b2) )
proof end;
end;

:: deftheorem Def5 defines 'not' VALUAT_1:def 5 :
for b1 being non empty set
for b2, b3 being Element of Funcs b1,BOOLEAN holds
( b3 = 'not' b2 iff for b4 being Element of b1 holds b3 . b4 = 'not' (b2 . b4) );

:: deftheorem Def6 defines '&' VALUAT_1:def 6 :
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,BOOLEAN holds
( b4 = b2 '&' b3 iff for b5 being Element of b1 holds b4 . b5 = (b2 . b5) '&' (b3 . b5) );

definition
let c1 be non empty set ;
let c2 be bound_QC-variable;
let c3 be Element of Funcs (Valuations_in c1),BOOLEAN ;
func FOR_ALL c2,c3 -> Element of Funcs (Valuations_in a1),BOOLEAN means :Def7: :: VALUAT_1:def 7
for b1 being Element of Valuations_in a1 holds a4 . b1 = ALL { (a3 . b2) where B is Element of Valuations_in a1 : for b1 being bound_QC-variable st a2 <> b3 holds
b2 . b3 = b1 . b3
}
;
existence
ex b1 being Element of Funcs (Valuations_in c1),BOOLEAN st
for b2 being Element of Valuations_in c1 holds b1 . b2 = ALL { (c3 . b3) where B is Element of Valuations_in c1 : for b1 being bound_QC-variable st c2 <> b4 holds
b3 . b4 = b2 . b4
}
proof end;
uniqueness
for b1, b2 being Element of Funcs (Valuations_in c1),BOOLEAN st ( for b3 being Element of Valuations_in c1 holds b1 . b3 = ALL { (c3 . b4) where B is Element of Valuations_in c1 : for b1 being bound_QC-variable st c2 <> b5 holds
b4 . b5 = b3 . b5
}
) & ( for b3 being Element of Valuations_in c1 holds b2 . b3 = ALL { (c3 . b4) where B is Element of Valuations_in c1 : for b1 being bound_QC-variable st c2 <> b5 holds
b4 . b5 = b3 . b5
}
) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines FOR_ALL VALUAT_1:def 7 :
for b1 being non empty set
for b2 being bound_QC-variable
for b3, b4 being Element of Funcs (Valuations_in b1),BOOLEAN holds
( b4 = FOR_ALL b2,b3 iff for b5 being Element of Valuations_in b1 holds b4 . b5 = ALL { (b3 . b6) where B is Element of Valuations_in b1 : for b1 being bound_QC-variable st b2 <> b7 holds
b6 . b7 = b5 . b7
}
);

theorem Th3: :: VALUAT_1:3
canceled;

theorem Th4: :: VALUAT_1:4
canceled;

theorem Th5: :: VALUAT_1:5
canceled;

theorem Th6: :: VALUAT_1:6
canceled;

theorem Th7: :: VALUAT_1:7
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of Funcs (Valuations_in b1),BOOLEAN holds
( (FOR_ALL b2,b4) . b3 = FALSE iff ex b5 being Element of Valuations_in b1 st
( b4 . b5 = FALSE & ( for b6 being bound_QC-variable st b2 <> b6 holds
b5 . b6 = b3 . b6 ) ) )
proof end;

theorem Th8: :: VALUAT_1:8
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of Funcs (Valuations_in b1),BOOLEAN holds
( (FOR_ALL b2,b4) . b3 = TRUE iff for b5 being Element of Valuations_in b1 st ( for b6 being bound_QC-variable st b2 <> b6 holds
b5 . b6 = b3 . b6 ) holds
b4 . b5 = TRUE )
proof end;

notation
let c1 be non empty set ;
let c2 be Nat;
let c3 be CQC-variable_list of c2;
let c4 be Element of Valuations_in c1;
synonym c4 *' c3 for c2 * c1;
end;

definition
let c1 be non empty set ;
let c2 be Nat;
let c3 be CQC-variable_list of c2;
let c4 be Element of Valuations_in c1;
redefine func *' as c4 *' c3 -> FinSequence of a1 means :Def8: :: VALUAT_1:def 8
( len a5 = a2 & ( for b1 being Nat st 1 <= b1 & b1 <= a2 holds
a5 . b1 = a4 . (a3 . b1) ) );
coherence
*' is FinSequence of c1
proof end;
compatibility
for b1 being FinSequence of c1 holds
( b1 = *' iff ( len b1 = c2 & ( for b2 being Nat st 1 <= b2 & b2 <= c2 holds
b1 . b2 = c4 . (c3 . b2) ) ) )
proof end;
end;

:: deftheorem Def8 defines *' VALUAT_1:def 8 :
for b1 being non empty set
for b2 being Nat
for b3 being CQC-variable_list of b2
for b4 being Element of Valuations_in b1
for b5 being FinSequence of b1 holds
( b5 = b4 *' b3 iff ( len b5 = b2 & ( for b6 being Nat st 1 <= b6 & b6 <= b2 holds
b5 . b6 = b4 . (b3 . b6) ) ) );

definition
let c1 be non empty set ;
let c2 be Nat;
let c3 be CQC-variable_list of c2;
let c4 be Element of relations_on c1;
func c3 'in' c4 -> Element of Funcs (Valuations_in a1),BOOLEAN means :Def9: :: VALUAT_1:def 9
for b1 being Element of Valuations_in a1 holds
( ( b1 *' a3 in a4 implies a5 . b1 = TRUE ) & ( not b1 *' a3 in a4 implies a5 . b1 = FALSE ) );
existence
ex b1 being Element of Funcs (Valuations_in c1),BOOLEAN st
for b2 being Element of Valuations_in c1 holds
( ( b2 *' c3 in c4 implies b1 . b2 = TRUE ) & ( not b2 *' c3 in c4 implies b1 . b2 = FALSE ) )
proof end;
uniqueness
for b1, b2 being Element of Funcs (Valuations_in c1),BOOLEAN st ( for b3 being Element of Valuations_in c1 holds
( ( b3 *' c3 in c4 implies b1 . b3 = TRUE ) & ( not b3 *' c3 in c4 implies b1 . b3 = FALSE ) ) ) & ( for b3 being Element of Valuations_in c1 holds
( ( b3 *' c3 in c4 implies b2 . b3 = TRUE ) & ( not b3 *' c3 in c4 implies b2 . b3 = FALSE ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def9 defines 'in' VALUAT_1:def 9 :
for b1 being non empty set
for b2 being Nat
for b3 being CQC-variable_list of b2
for b4 being Element of relations_on b1
for b5 being Element of Funcs (Valuations_in b1),BOOLEAN holds
( b5 = b3 'in' b4 iff for b6 being Element of Valuations_in b1 holds
( ( b6 *' b3 in b4 implies b5 . b6 = TRUE ) & ( not b6 *' b3 in b4 implies b5 . b6 = FALSE ) ) );

definition
let c1 be non empty set ;
let c2 be Function of CQC-WFF , Funcs (Valuations_in c1),BOOLEAN ;
let c3 be Element of CQC-WFF ;
redefine func . as c2 . c3 -> Element of Funcs (Valuations_in a1),BOOLEAN ;
coherence
c2 . c3 is Element of Funcs (Valuations_in c1),BOOLEAN
proof end;
end;

definition
let c1 be non empty set ;
mode interpretation of c1 -> Function of QC-pred_symbols , relations_on a1 means :: VALUAT_1:def 10
for b1 being Element of QC-pred_symbols
for b2 being Element of relations_on a1 holds
( not a2 . b1 = b2 or b2 = empty_rel a1 or the_arity_of b1 = the_arity_of b2 );
existence
ex b1 being Function of QC-pred_symbols , relations_on c1 st
for b2 being Element of QC-pred_symbols
for b3 being Element of relations_on c1 holds
( not b1 . b2 = b3 or b3 = empty_rel c1 or the_arity_of b2 = the_arity_of b3 )
proof end;
end;

:: deftheorem Def10 defines interpretation VALUAT_1:def 10 :
for b1 being non empty set
for b2 being Function of QC-pred_symbols , relations_on b1 holds
( b2 is interpretation of b1 iff for b3 being Element of QC-pred_symbols
for b4 being Element of relations_on b1 holds
( not b2 . b3 = b4 or b4 = empty_rel b1 or the_arity_of b3 = the_arity_of b4 ) );

definition
let c1 be non empty set ;
let c2 be Nat;
let c3 be interpretation of c1;
let c4 be QC-pred_symbol of c2;
redefine func . as c3 . c4 -> Element of relations_on a1;
coherence
c3 . c4 is Element of relations_on c1
by FUNCT_2:7;
end;

definition
let c1 be non empty set ;
let c2 be interpretation of c1;
let c3 be Element of CQC-WFF ;
func Valid c3,c2 -> Element of Funcs (Valuations_in a1),BOOLEAN means :Def11: :: VALUAT_1:def 11
ex b1 being Function of CQC-WFF , Funcs (Valuations_in a1),BOOLEAN st
( a4 = b1 . a3 & b1 . VERUM = (Valuations_in a1) --> TRUE & ( for b2, b3 being Element of CQC-WFF
for b4 being bound_QC-variable
for b5 being Nat
for b6 being CQC-variable_list of b5
for b7 being QC-pred_symbol of b5 holds
( b1 . (b7 ! b6) = b6 'in' (a2 . b7) & b1 . ('not' b2) = 'not' (b1 . b2) & b1 . (b2 '&' b3) = (b1 . b2) '&' (b1 . b3) & b1 . (All b4,b2) = FOR_ALL b4,(b1 . b2) ) ) );
correctness
existence
ex b1 being Element of Funcs (Valuations_in c1),BOOLEAN ex b2 being Function of CQC-WFF , Funcs (Valuations_in c1),BOOLEAN st
( b1 = b2 . c3 & b2 . VERUM = (Valuations_in c1) --> TRUE & ( for b3, b4 being Element of CQC-WFF
for b5 being bound_QC-variable
for b6 being Nat
for b7 being CQC-variable_list of b6
for b8 being QC-pred_symbol of b6 holds
( b2 . (b8 ! b7) = b7 'in' (c2 . b8) & b2 . ('not' b3) = 'not' (b2 . b3) & b2 . (b3 '&' b4) = (b2 . b3) '&' (b2 . b4) & b2 . (All b5,b3) = FOR_ALL b5,(b2 . b3) ) ) )
;
uniqueness
for b1, b2 being Element of Funcs (Valuations_in c1),BOOLEAN st ex b3 being Function of CQC-WFF , Funcs (Valuations_in c1),BOOLEAN st
( b1 = b3 . c3 & b3 . VERUM = (Valuations_in c1) --> TRUE & ( for b4, b5 being Element of CQC-WFF
for b6 being bound_QC-variable
for b7 being Nat
for b8 being CQC-variable_list of b7
for b9 being QC-pred_symbol of b7 holds
( b3 . (b9 ! b8) = b8 'in' (c2 . b9) & b3 . ('not' b4) = 'not' (b3 . b4) & b3 . (b4 '&' b5) = (b3 . b4) '&' (b3 . b5) & b3 . (All b6,b4) = FOR_ALL b6,(b3 . b4) ) ) ) & ex b3 being Function of CQC-WFF , Funcs (Valuations_in c1),BOOLEAN st
( b2 = b3 . c3 & b3 . VERUM = (Valuations_in c1) --> TRUE & ( for b4, b5 being Element of CQC-WFF
for b6 being bound_QC-variable
for b7 being Nat
for b8 being CQC-variable_list of b7
for b9 being QC-pred_symbol of b7 holds
( b3 . (b9 ! b8) = b8 'in' (c2 . b9) & b3 . ('not' b4) = 'not' (b3 . b4) & b3 . (b4 '&' b5) = (b3 . b4) '&' (b3 . b5) & b3 . (All b6,b4) = FOR_ALL b6,(b3 . b4) ) ) ) holds
b1 = b2
;
proof end;
end;

:: deftheorem Def11 defines Valid VALUAT_1:def 11 :
for b1 being non empty set
for b2 being interpretation of b1
for b3 being Element of CQC-WFF
for b4 being Element of Funcs (Valuations_in b1),BOOLEAN holds
( b4 = Valid b3,b2 iff ex b5 being Function of CQC-WFF , Funcs (Valuations_in b1),BOOLEAN st
( b4 = b5 . b3 & b5 . VERUM = (Valuations_in b1) --> TRUE & ( for b6, b7 being Element of CQC-WFF
for b8 being bound_QC-variable
for b9 being Nat
for b10 being CQC-variable_list of b9
for b11 being QC-pred_symbol of b9 holds
( b5 . (b11 ! b10) = b10 'in' (b2 . b11) & b5 . ('not' b6) = 'not' (b5 . b6) & b5 . (b6 '&' b7) = (b5 . b6) '&' (b5 . b7) & b5 . (All b8,b6) = FOR_ALL b8,(b5 . b6) ) ) ) );

Lemma13: for b1 being Element of CQC-WFF
for b2 being non empty set
for b3 being interpretation of b2 holds
( Valid VERUM ,b3 = (Valuations_in b2) --> TRUE & ( for b4 being Nat
for b5 being CQC-variable_list of b4
for b6 being QC-pred_symbol of b4 holds Valid (b6 ! b5),b3 = b5 'in' (b3 . b6) ) & ( for b4 being Element of CQC-WFF holds Valid ('not' b4),b3 = 'not' (Valid b4,b3) ) & ( for b4 being Element of CQC-WFF holds Valid (b1 '&' b4),b3 = (Valid b1,b3) '&' (Valid b4,b3) ) & ( for b4 being bound_QC-variable holds Valid (All b4,b1),b3 = FOR_ALL b4,(Valid b1,b3) ) )
proof end;

theorem Th9: :: VALUAT_1:9
canceled;

theorem Th10: :: VALUAT_1:10
canceled;

theorem Th11: :: VALUAT_1:11
canceled;

theorem Th12: :: VALUAT_1:12
canceled;

theorem Th13: :: VALUAT_1:13
for b1 being non empty set
for b2 being interpretation of b1 holds Valid VERUM ,b2 = (Valuations_in b1) --> TRUE by Lemma13;

theorem Th14: :: VALUAT_1:14
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being interpretation of b1 holds (Valid VERUM ,b3) . b2 = TRUE
proof end;

theorem Th15: :: VALUAT_1:15
for b1 being Nat
for b2 being non empty set
for b3 being CQC-variable_list of b1
for b4 being interpretation of b2
for b5 being QC-pred_symbol of b1 holds Valid (b5 ! b3),b4 = b3 'in' (b4 . b5) by Lemma13;

theorem Th16: :: VALUAT_1:16
for b1 being Nat
for b2 being non empty set
for b3 being Element of Valuations_in b2
for b4 being CQC-variable_list of b1
for b5 being Element of CQC-WFF
for b6 being interpretation of b2
for b7 being QC-pred_symbol of b1
for b8 being Element of relations_on b2 st b5 = b7 ! b4 & b8 = b6 . b7 holds
( b3 *' b4 in b8 iff (Valid b5,b6) . b3 = TRUE )
proof end;

theorem Th17: :: VALUAT_1:17
for b1 being Nat
for b2 being non empty set
for b3 being Element of Valuations_in b2
for b4 being CQC-variable_list of b1
for b5 being Element of CQC-WFF
for b6 being interpretation of b2
for b7 being QC-pred_symbol of b1
for b8 being Element of relations_on b2 st b5 = b7 ! b4 & b8 = b6 . b7 holds
( not b3 *' b4 in b8 iff (Valid b5,b6) . b3 = FALSE )
proof end;

theorem Th18: :: VALUAT_1:18
canceled;

theorem Th19: :: VALUAT_1:19
for b1 being non empty set
for b2 being Element of CQC-WFF
for b3 being interpretation of b1 holds Valid ('not' b2),b3 = 'not' (Valid b2,b3) by Lemma13;

theorem Th20: :: VALUAT_1:20
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds (Valid ('not' b3),b4) . b2 = 'not' ((Valid b3,b4) . b2)
proof end;

theorem Th21: :: VALUAT_1:21
for b1 being non empty set
for b2, b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds Valid (b2 '&' b3),b4 = (Valid b2,b4) '&' (Valid b3,b4) by Lemma13;

theorem Th22: :: VALUAT_1:22
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds (Valid (b3 '&' b4),b5) . b2 = ((Valid b3,b5) . b2) '&' ((Valid b4,b5) . b2)
proof end;

theorem Th23: :: VALUAT_1:23
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds Valid (All b2,b3),b4 = FOR_ALL b2,(Valid b3,b4) by Lemma13;

theorem Th24: :: VALUAT_1:24
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds (Valid (b3 '&' ('not' b3)),b4) . b2 = FALSE
proof end;

theorem Th25: :: VALUAT_1:25
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds (Valid ('not' (b3 '&' ('not' b3))),b4) . b2 = TRUE
proof end;

definition
let c1 be non empty set ;
let c2 be Element of CQC-WFF ;
let c3 be interpretation of c1;
let c4 be Element of Valuations_in c1;
pred c3,c4 |= c2 means :Def12: :: VALUAT_1:def 12
(Valid a2,a3) . a4 = TRUE ;
end;

:: deftheorem Def12 defines |= VALUAT_1:def 12 :
for b1 being non empty set
for b2 being Element of CQC-WFF
for b3 being interpretation of b1
for b4 being Element of Valuations_in b1 holds
( b3,b4 |= b2 iff (Valid b2,b3) . b4 = TRUE );

theorem Th26: :: VALUAT_1:26
canceled;

theorem Th27: :: VALUAT_1:27
for b1 being Nat
for b2 being non empty set
for b3 being Element of Valuations_in b2
for b4 being CQC-variable_list of b1
for b5 being interpretation of b2
for b6 being QC-pred_symbol of b1 holds
( b5,b3 |= b6 ! b4 iff (b4 'in' (b5 . b6)) . b3 = TRUE )
proof end;

theorem Th28: :: VALUAT_1:28
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds
( b4,b2 |= 'not' b3 iff not b4,b2 |= b3 )
proof end;

theorem Th29: :: VALUAT_1:29
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds
( b5,b2 |= b3 '&' b4 iff ( b5,b2 |= b3 & b5,b2 |= b4 ) )
proof end;

theorem Th30: :: VALUAT_1:30
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds
( b5,b3 |= All b2,b4 iff (FOR_ALL b2,(Valid b4,b5)) . b3 = TRUE )
proof end;

theorem Th31: :: VALUAT_1:31
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds
( b5,b3 |= All b2,b4 iff for b6 being Element of Valuations_in b1 st ( for b7 being bound_QC-variable st b2 <> b7 holds
b6 . b7 = b3 . b7 ) holds
(Valid b4,b5) . b6 = TRUE )
proof end;

theorem Th32: :: VALUAT_1:32
for b1 being non empty set
for b2 being Element of CQC-WFF
for b3 being interpretation of b1 holds Valid ('not' ('not' b2)),b3 = Valid b2,b3
proof end;

theorem Th33: :: VALUAT_1:33
for b1 being non empty set
for b2 being Element of CQC-WFF
for b3 being interpretation of b1 holds Valid (b2 '&' b2),b3 = Valid b2,b3
proof end;

theorem Th34: :: VALUAT_1:34
canceled;

theorem Th35: :: VALUAT_1:35
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds
( b5,b2 |= b3 => b4 iff ( (Valid b3,b5) . b2 = FALSE or (Valid b4,b5) . b2 = TRUE ) )
proof end;

theorem Th36: :: VALUAT_1:36
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds
( b5,b2 |= b3 => b4 iff ( b5,b2 |= b3 implies b5,b2 |= b4 ) )
proof end;

theorem Th37: :: VALUAT_1:37
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of Funcs (Valuations_in b1),BOOLEAN st (FOR_ALL b2,b4) . b3 = TRUE holds
b4 . b3 = TRUE
proof end;

definition
let c1 be non empty set ;
let c2 be interpretation of c1;
let c3 be Element of CQC-WFF ;
pred c2 |= c3 means :Def13: :: VALUAT_1:def 13
for b1 being Element of Valuations_in a1 holds a2,b1 |= a3;
end;

:: deftheorem Def13 defines |= VALUAT_1:def 13 :
for b1 being non empty set
for b2 being interpretation of b1
for b3 being Element of CQC-WFF holds
( b2 |= b3 iff for b4 being Element of Valuations_in b1 holds b2,b4 |= b3 );

Lemma28: for b1, b2, b3 being Element of BOOLEAN holds 'not' (('not' (b1 '&' ('not' b2))) '&' (('not' (b2 '&' b3)) '&' (b1 '&' b3))) = TRUE
proof end;

scheme :: VALUAT_1:sch 1
s1{ F1() -> non empty set , F2() -> bound_QC-variable, F3() -> bound_QC-variable, F4() -> Element of Valuations_in F1(), F5() -> Element of Valuations_in F1() } :
ex b1 being Element of Valuations_in F1() st
( ( for b2 being bound_QC-variable st b2 <> F2() holds
b1 . b2 = F4() . b2 ) & b1 . F2() = F5() . F3() )
proof end;

theorem Th38: :: VALUAT_1:38
canceled;

theorem Th39: :: VALUAT_1:39
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 st not b2 in still_not-bound_in b3 holds
for b5, b6 being Element of Valuations_in b1 st ( for b7 being bound_QC-variable st b2 <> b7 holds
b6 . b7 = b5 . b7 ) holds
(Valid b3,b4) . b5 = (Valid b3,b4) . b6
proof end;

theorem Th40: :: VALUAT_1:40
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of CQC-WFF
for b5 being interpretation of b1 st b5,b3 |= b4 & not b2 in still_not-bound_in b4 holds
for b6 being Element of Valuations_in b1 st ( for b7 being bound_QC-variable st b2 <> b7 holds
b6 . b7 = b3 . b7 ) holds
b5,b6 |= b4
proof end;

theorem Th41: :: VALUAT_1:41
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds
( b5,b3 |= All b2,b4 iff for b6 being Element of Valuations_in b1 st ( for b7 being bound_QC-variable st b2 <> b7 holds
b6 . b7 = b3 . b7 ) holds
b5,b6 |= b4 )
proof end;

theorem Th42: :: VALUAT_1:42
for b1 being non empty set
for b2, b3 being bound_QC-variable
for b4, b5 being Element of CQC-WFF
for b6 being interpretation of b1
for b7 being QC-formula st b2 <> b3 & b4 = b7 . b2 & b5 = b7 . b3 holds
for b8 being Element of Valuations_in b1 st b8 . b2 = b8 . b3 holds
(Valid b4,b6) . b8 = (Valid b5,b6) . b8
proof end;

theorem Th43: :: VALUAT_1:43
for b1, b2 being bound_QC-variable
for b3 being QC-formula st b1 <> b2 & not b1 in still_not-bound_in b3 holds
not b1 in still_not-bound_in (b3 . b2)
proof end;

theorem Th44: :: VALUAT_1:44
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being interpretation of b1 holds b3,b2 |= VERUM
proof end;

theorem Th45: :: VALUAT_1:45
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds b5,b2 |= (b3 '&' b4) => (b4 '&' b3)
proof end;

theorem Th46: :: VALUAT_1:46
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds b4,b2 |= (('not' b3) => b3) => b3
proof end;

theorem Th47: :: VALUAT_1:47
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds b5,b2 |= b3 => (('not' b3) => b4)
proof end;

theorem Th48: :: VALUAT_1:48
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4, b5 being Element of CQC-WFF
for b6 being interpretation of b1 holds b6,b2 |= (b3 => b4) => (('not' (b4 '&' b5)) => ('not' (b3 '&' b5)))
proof end;

theorem Th49: :: VALUAT_1:49
for b1 being non empty set
for b2 being Element of Valuations_in b1
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 st b5,b2 |= b3 & b5,b2 |= b3 => b4 holds
b5,b2 |= b4 by Th36;

theorem Th50: :: VALUAT_1:50
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of Valuations_in b1
for b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds b5,b3 |= (All b2,b4) => b4
proof end;

theorem Th51: :: VALUAT_1:51
for b1 being non empty set
for b2 being interpretation of b1 holds b2 |= VERUM
proof end;

theorem Th52: :: VALUAT_1:52
for b1 being non empty set
for b2, b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds b4 |= (b2 '&' b3) => (b3 '&' b2)
proof end;

theorem Th53: :: VALUAT_1:53
for b1 being non empty set
for b2 being Element of CQC-WFF
for b3 being interpretation of b1 holds b3 |= (('not' b2) => b2) => b2
proof end;

theorem Th54: :: VALUAT_1:54
for b1 being non empty set
for b2, b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds b4 |= b2 => (('not' b2) => b3)
proof end;

theorem Th55: :: VALUAT_1:55
for b1 being non empty set
for b2, b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 holds b5 |= (b2 => b3) => (('not' (b3 '&' b4)) => ('not' (b2 '&' b4)))
proof end;

theorem Th56: :: VALUAT_1:56
for b1 being non empty set
for b2, b3 being Element of CQC-WFF
for b4 being interpretation of b1 st b4 |= b2 & b4 |= b2 => b3 holds
b4 |= b3
proof end;

theorem Th57: :: VALUAT_1:57
for b1 being non empty set
for b2 being bound_QC-variable
for b3 being Element of CQC-WFF
for b4 being interpretation of b1 holds b4 |= (All b2,b3) => b3
proof end;

theorem Th58: :: VALUAT_1:58
for b1 being non empty set
for b2 being bound_QC-variable
for b3, b4 being Element of CQC-WFF
for b5 being interpretation of b1 st b5 |= b3 => b4 & not b2 in still_not-bound_in b3 holds
b5 |= b3 => (All b2,b4)
proof end;

theorem Th59: :: VALUAT_1:59
for b1 being non empty set
for b2, b3 being bound_QC-variable
for b4, b5 being Element of CQC-WFF
for b6 being interpretation of b1
for b7 being QC-formula st b4 = b7 . b2 & b5 = b7 . b3 & not b2 in still_not-bound_in b7 & b6 |= b4 holds
b6 |= b5
proof end;