begin
scheme
QCFuncUniq{
F1()
-> non
empty set ,
F2()
-> Function of
QC-WFF,
F1(),
F3()
-> Function of
QC-WFF,
F1(),
F4()
-> Element of
F1(),
F5(
set )
-> Element of
F1(),
F6(
set )
-> Element of
F1(),
F7(
set ,
set )
-> Element of
F1(),
F8(
set ,
set )
-> Element of
F1() } :
provided
scheme
QCDefD{
F1()
-> non
empty set ,
F2()
-> Element of
F1(),
F3()
-> Element of
QC-WFF ,
F4(
Element of
QC-WFF )
-> Element of
F1(),
F5(
Element of
F1())
-> Element of
F1(),
F6(
Element of
F1(),
Element of
F1())
-> Element of
F1(),
F7(
Element of
QC-WFF ,
Element of
F1())
-> Element of
F1() } :
( ex
d being
Element of
F1() ex
F being
Function of
QC-WFF,
F1() st
(
d = F . F3() & ( for
p being
Element of
QC-WFF for
d1,
d2 being
Element of
F1() holds
( (
p = VERUM implies
F . p = F2() ) & (
p is
atomic implies
F . p = F4(
p) ) & (
p is
negative &
d1 = F . (the_argument_of p) implies
F . p = F5(
d1) ) & (
p is
conjunctive &
d1 = F . (the_left_argument_of p) &
d2 = F . (the_right_argument_of p) implies
F . p = F6(
d1,
d2) ) & (
p is
universal &
d1 = F . (the_scope_of p) implies
F . p = F7(
p,
d1) ) ) ) ) & ( for
x1,
x2 being
Element of
F1() st ex
F being
Function of
QC-WFF,
F1() st
(
x1 = F . F3() & ( for
p being
Element of
QC-WFF for
d1,
d2 being
Element of
F1() holds
( (
p = VERUM implies
F . p = F2() ) & (
p is
atomic implies
F . p = F4(
p) ) & (
p is
negative &
d1 = F . (the_argument_of p) implies
F . p = F5(
d1) ) & (
p is
conjunctive &
d1 = F . (the_left_argument_of p) &
d2 = F . (the_right_argument_of p) implies
F . p = F6(
d1,
d2) ) & (
p is
universal &
d1 = F . (the_scope_of p) implies
F . p = F7(
p,
d1) ) ) ) ) & ex
F being
Function of
QC-WFF,
F1() st
(
x2 = F . F3() & ( for
p being
Element of
QC-WFF for
d1,
d2 being
Element of
F1() holds
( (
p = VERUM implies
F . p = F2() ) & (
p is
atomic implies
F . p = F4(
p) ) & (
p is
negative &
d1 = F . (the_argument_of p) implies
F . p = F5(
d1) ) & (
p is
conjunctive &
d1 = F . (the_left_argument_of p) &
d2 = F . (the_right_argument_of p) implies
F . p = F6(
d1,
d2) ) & (
p is
universal &
d1 = F . (the_scope_of p) implies
F . p = F7(
p,
d1) ) ) ) ) holds
x1 = x2 ) )
theorem
canceled;
theorem
canceled;
theorem
:: deftheorem QC_LANG3:def 1 :
canceled;
:: deftheorem defines variables_in QC_LANG3:def 2 :
for l being FinSequence of QC-variables
for V being non empty Subset of QC-variables holds variables_in (l,V) = { (l . k) where k is Element of NAT : ( 1 <= k & k <= len l & l . k in V ) } ;
theorem
canceled;
theorem
canceled;
theorem
deffunc H1( Element of QC-WFF ) -> Element of bool bound_QC-variables = still_not-bound_in $1;
deffunc H2( Element of QC-WFF ) -> Element of bool bound_QC-variables = still_not-bound_in (the_arguments_of $1);
deffunc H3( Subset of bound_QC-variables) -> Subset of bound_QC-variables = $1;
deffunc H4( Subset of bound_QC-variables, Subset of bound_QC-variables) -> Element of bool bound_QC-variables = $1 \/ $2;
deffunc H5( Element of QC-WFF , Subset of bound_QC-variables) -> Element of bool bound_QC-variables = $2 \ {(bound_in $1)};
Lm1:
for p being QC-formula
for d being Subset of bound_QC-variables holds
( d = H1(p) iff ex F being Function of QC-WFF,(bool bound_QC-variables) st
( d = F . p & ( for p being Element of QC-WFF
for d1, d2 being Subset of bound_QC-variables holds
( ( p = VERUM implies F . p = {} bound_QC-variables ) & ( p is atomic implies F . p = H2(p) ) & ( p is negative & d1 = F . (the_argument_of p) implies F . p = H3(d1) ) & ( p is conjunctive & d1 = F . (the_left_argument_of p) & d2 = F . (the_right_argument_of p) implies F . p = H4(d1,d2) ) & ( p is universal & d1 = F . (the_scope_of p) implies F . p = H5(p,d1) ) ) ) ) )
theorem Th7:
theorem Th8:
theorem
theorem Th10:
theorem Th11:
theorem Th12:
theorem Th13:
theorem Th14:
theorem Th15:
theorem Th16:
theorem Th17:
theorem
theorem Th19:
theorem Th20:
theorem Th21:
theorem
theorem Th23:
theorem
theorem Th25:
theorem Th26:
theorem Th27:
theorem
theorem
theorem Th30:
theorem
theorem Th32:
theorem
:: deftheorem defines x. QC_LANG3:def 3 :
for k being Element of NAT holds x. k = [4,k];
theorem
canceled;
theorem
canceled;
theorem
:: deftheorem defines a. QC_LANG3:def 4 :
for k being Element of NAT holds a. k = [6,k];
theorem
canceled;
theorem
canceled;
theorem
theorem
theorem
theorem
definition
let V be non
empty Subset of
QC-variables;
let p be
Element of
QC-WFF ;
func Vars (
p,
V)
-> Subset of
V means :
Def5:
ex
F being
Function of
QC-WFF,
(bool V) st
(
it = F . p & ( for
p being
Element of
QC-WFF for
d1,
d2 being
Subset of
V holds
( (
p = VERUM implies
F . p = {} V ) & (
p is
atomic implies
F . p = variables_in (
(the_arguments_of p),
V) ) & (
p is
negative &
d1 = F . (the_argument_of p) implies
F . p = d1 ) & (
p is
conjunctive &
d1 = F . (the_left_argument_of p) &
d2 = F . (the_right_argument_of p) implies
F . p = d1 \/ d2 ) & (
p is
universal &
d1 = F . (the_scope_of p) implies
F . p = d1 ) ) ) );
correctness
existence
ex b1 being Subset of V ex F being Function of QC-WFF,(bool V) st
( b1 = F . p & ( for p being Element of QC-WFF
for d1, d2 being Subset of V holds
( ( p = VERUM implies F . p = {} V ) & ( p is atomic implies F . p = variables_in ((the_arguments_of p),V) ) & ( p is negative & d1 = F . (the_argument_of p) implies F . p = d1 ) & ( p is conjunctive & d1 = F . (the_left_argument_of p) & d2 = F . (the_right_argument_of p) implies F . p = d1 \/ d2 ) & ( p is universal & d1 = F . (the_scope_of p) implies F . p = d1 ) ) ) );
uniqueness
for b1, b2 being Subset of V st ex F being Function of QC-WFF,(bool V) st
( b1 = F . p & ( for p being Element of QC-WFF
for d1, d2 being Subset of V holds
( ( p = VERUM implies F . p = {} V ) & ( p is atomic implies F . p = variables_in ((the_arguments_of p),V) ) & ( p is negative & d1 = F . (the_argument_of p) implies F . p = d1 ) & ( p is conjunctive & d1 = F . (the_left_argument_of p) & d2 = F . (the_right_argument_of p) implies F . p = d1 \/ d2 ) & ( p is universal & d1 = F . (the_scope_of p) implies F . p = d1 ) ) ) ) & ex F being Function of QC-WFF,(bool V) st
( b2 = F . p & ( for p being Element of QC-WFF
for d1, d2 being Subset of V holds
( ( p = VERUM implies F . p = {} V ) & ( p is atomic implies F . p = variables_in ((the_arguments_of p),V) ) & ( p is negative & d1 = F . (the_argument_of p) implies F . p = d1 ) & ( p is conjunctive & d1 = F . (the_left_argument_of p) & d2 = F . (the_right_argument_of p) implies F . p = d1 \/ d2 ) & ( p is universal & d1 = F . (the_scope_of p) implies F . p = d1 ) ) ) ) holds
b1 = b2;
end;
:: deftheorem Def5 defines Vars QC_LANG3:def 5 :
for V being non empty Subset of QC-variables
for p being Element of QC-WFF
for b3 being Subset of V holds
( b3 = Vars (p,V) iff ex F being Function of QC-WFF,(bool V) st
( b3 = F . p & ( for p being Element of QC-WFF
for d1, d2 being Subset of V holds
( ( p = VERUM implies F . p = {} V ) & ( p is atomic implies F . p = variables_in ((the_arguments_of p),V) ) & ( p is negative & d1 = F . (the_argument_of p) implies F . p = d1 ) & ( p is conjunctive & d1 = F . (the_left_argument_of p) & d2 = F . (the_right_argument_of p) implies F . p = d1 \/ d2 ) & ( p is universal & d1 = F . (the_scope_of p) implies F . p = d1 ) ) ) ) );
Lm2:
now
let V be non
empty Subset of
QC-variables;
( H6( VERUM ) = {} & ( for p being Element of QC-WFF st p is atomic holds
Vars (p,V) = variables_in ((the_arguments_of p),V) ) & ( for p being Element of QC-WFF st p is negative holds
Vars (p,V) = Vars ((the_argument_of p),V) ) & ( for p being Element of QC-WFF st p is conjunctive holds
Vars (p,V) = (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V)) ) & ( for p being Element of QC-WFF st p is universal holds
Vars (p,V) = Vars ((the_scope_of p),V) ) )deffunc H6(
Element of
QC-WFF )
-> Subset of
V =
Vars ($1,
V);
deffunc H7(
Element of
QC-WFF )
-> Subset of
V =
variables_in (
(the_arguments_of $1),
V);
deffunc H8(
Subset of
V)
-> Subset of
V = $1;
deffunc H9(
Subset of
V,
Subset of
V)
-> Element of
bool V = $1
\/ $2;
deffunc H10(
Element of
QC-WFF ,
Subset of
V)
-> Subset of
V = $2;
A1:
for
p being
Element of
QC-WFF for
X being
Subset of
V holds
(
X = H6(
p) iff ex
F being
Function of
QC-WFF,
(bool V) st
(
X = F . p & ( for
p being
Element of
QC-WFF for
d1,
d2 being
Subset of
V holds
( (
p = VERUM implies
F . p = {} V ) & (
p is
atomic implies
F . p = H7(
p) ) & (
p is
negative &
d1 = F . (the_argument_of p) implies
F . p = H8(
d1) ) & (
p is
conjunctive &
d1 = F . (the_left_argument_of p) &
d2 = F . (the_right_argument_of p) implies
F . p = H9(
d1,
d2) ) & (
p is
universal &
d1 = F . (the_scope_of p) implies
F . p = H10(
p,
d1) ) ) ) ) )
by Def5;
thus H6(
VERUM ) =
{} V
from QC_LANG3:sch 3(A1)
.=
{}
;
( ( for p being Element of QC-WFF st p is atomic holds
Vars (p,V) = variables_in ((the_arguments_of p),V) ) & ( for p being Element of QC-WFF st p is negative holds
Vars (p,V) = Vars ((the_argument_of p),V) ) & ( for p being Element of QC-WFF st p is conjunctive holds
Vars (p,V) = (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V)) ) & ( for p being Element of QC-WFF st p is universal holds
Vars (p,V) = Vars ((the_scope_of p),V) ) )thus
for
p being
Element of
QC-WFF st
p is
atomic holds
Vars (
p,
V)
= variables_in (
(the_arguments_of p),
V)
( ( for p being Element of QC-WFF st p is negative holds
Vars (p,V) = Vars ((the_argument_of p),V) ) & ( for p being Element of QC-WFF st p is conjunctive holds
Vars (p,V) = (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V)) ) & ( for p being Element of QC-WFF st p is universal holds
Vars (p,V) = Vars ((the_scope_of p),V) ) )
thus
for
p being
Element of
QC-WFF st
p is
negative holds
Vars (
p,
V)
= Vars (
(the_argument_of p),
V)
( ( for p being Element of QC-WFF st p is conjunctive holds
Vars (p,V) = (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V)) ) & ( for p being Element of QC-WFF st p is universal holds
Vars (p,V) = Vars ((the_scope_of p),V) ) )
thus
for
p being
Element of
QC-WFF st
p is
conjunctive holds
Vars (
p,
V)
= (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V))
for p being Element of QC-WFF st p is universal holds
Vars (p,V) = Vars ((the_scope_of p),V)
proof
let p be
Element of
QC-WFF ;
( p is conjunctive implies Vars (p,V) = (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V)) )
assume A4:
p is
conjunctive
;
Vars (p,V) = (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V))
for
d1,
d2 being
Subset of
V st
d1 = H6(
the_left_argument_of p) &
d2 = H6(
the_right_argument_of p) holds
H6(
p)
= H9(
d1,
d2)
from QC_LANG3:sch 6(A1, A4);
hence
Vars (
p,
V)
= (Vars ((the_left_argument_of p),V)) \/ (Vars ((the_right_argument_of p),V))
;
verum
end;
thus
for
p being
Element of
QC-WFF st
p is
universal holds
Vars (
p,
V)
= Vars (
(the_scope_of p),
V)
verum
end;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
theorem Th47:
theorem Th48:
theorem
theorem Th50:
theorem Th51:
theorem
theorem Th53:
theorem
theorem Th55:
theorem Th56:
theorem
theorem Th58:
theorem Th59:
theorem Th60:
theorem
theorem
theorem
:: deftheorem defines Free QC_LANG3:def 6 :
for p being Element of QC-WFF holds Free p = Vars (p,free_QC-variables);
theorem
canceled;
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th72:
theorem
theorem
:: deftheorem defines Fixed QC_LANG3:def 7 :
for p being Element of QC-WFF holds Fixed p = Vars (p,fixed_QC-variables);
theorem
canceled;
theorem Th76:
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th83:
theorem
theorem