let S be non empty non void ManySortedSign ; for s being SortSymbol of S
for X being non-empty ManySortedSet of the carrier of S
for x1, x2 being Element of X . s
for T being b2,S -terms all_vars_including inheriting_operations free_in_itself MSAlgebra over S
for r being Element of T st T is struct-invariant & x1 <> x2 & r is x2 -omitting holds
(Hom (T,x1,x2)) . r is x1 -omitting
let s be SortSymbol of S; for X being non-empty ManySortedSet of the carrier of S
for x1, x2 being Element of X . s
for T being b1,S -terms all_vars_including inheriting_operations free_in_itself MSAlgebra over S
for r being Element of T st T is struct-invariant & x1 <> x2 & r is x2 -omitting holds
(Hom (T,x1,x2)) . r is x1 -omitting
let X be non-empty ManySortedSet of the carrier of S; for x1, x2 being Element of X . s
for T being X,S -terms all_vars_including inheriting_operations free_in_itself MSAlgebra over S
for r being Element of T st T is struct-invariant & x1 <> x2 & r is x2 -omitting holds
(Hom (T,x1,x2)) . r is x1 -omitting
let x1, x2 be Element of X . s; for T being X,S -terms all_vars_including inheriting_operations free_in_itself MSAlgebra over S
for r being Element of T st T is struct-invariant & x1 <> x2 & r is x2 -omitting holds
(Hom (T,x1,x2)) . r is x1 -omitting
let T be X,S -terms all_vars_including inheriting_operations free_in_itself MSAlgebra over S; for r being Element of T st T is struct-invariant & x1 <> x2 & r is x2 -omitting holds
(Hom (T,x1,x2)) . r is x1 -omitting
let r be Element of T; ( T is struct-invariant & x1 <> x2 & r is x2 -omitting implies (Hom (T,x1,x2)) . r is x1 -omitting )
assume that
AA:
for o being OperSymbol of S
for p being Element of Args (o,T) st (Den (o,T)) . p = (Den (o,(Free (S,X)))) . p holds
for s being SortSymbol of S
for x1, x2 being Element of X . s holds (Den (o,T)) . ((Hom (T,x1,x2)) # p) = (Den (o,(Free (S,X)))) . ((Hom (T,x1,x2)) # p)
and
A0:
x1 <> x2
; MSAFREE5:def 32 ( not r is x2 -omitting or (Hom (T,x1,x2)) . r is x1 -omitting )
set h = Hom (T,x1,x2);
set s0 = s;
defpred S1[ Element of T] means ( $1 is x2 -omitting implies (Hom (T,x1,x2)) . $1 is x1 -omitting );
A1:
for s being SortSymbol of S
for x being Element of X . s
for r being Element of T st r = x -term holds
S1[r]
proof
let s be
SortSymbol of
S;
for x being Element of X . s
for r being Element of T st r = x -term holds
S1[r]let x be
Element of
X . s;
for r being Element of T st r = x -term holds
S1[r]let r be
Element of
T;
( r = x -term implies S1[r] )
assume Z0:
r = x -term
;
S1[r]
assume Z1:
r is
x2 -omitting
;
(Hom (T,x1,x2)) . r is x1 -omitting
per cases
( s <> s or ( x1 <> x & x2 <> x ) or ( s = s & x1 = x ) or ( s = s & x2 = x ) )
;
suppose A2:
(
s <> s or (
x1 <> x &
x2 <> x ) )
;
(Hom (T,x1,x2)) . r is x1 -omitting then
(
((Hom (T,x1,x2)) . s) . r = r &
the_sort_of (@ r) = the_sort_of r )
by Z0, HOM, Lem00;
then
(
((Hom (T,x1,x2)) . (the_sort_of r)) . r = r &
x -term is
x1 -omitting )
by A2, Z0, SORT, ThC1;
hence
(Hom (T,x1,x2)) . r is
x1 -omitting
by Z0, ABBR;
verum end; suppose
(
s = s &
x1 = x )
;
(Hom (T,x1,x2)) . r is x1 -omitting then
(
((Hom (T,x1,x2)) . s) . r = x2 -term &
the_sort_of (@ r) = the_sort_of r )
by Z0, HOM, Lem00;
then A4:
((Hom (T,x1,x2)) . (the_sort_of r)) . r = x2 -term
by Z0, SORT;
x2 -term is
x1 -omitting
by A0, ThC1;
hence
(Hom (T,x1,x2)) . r is
x1 -omitting
by A4, ABBR;
verum end; end;
end;
A2:
for o being OperSymbol of S
for p being Element of Args (o,(Free (S,X)))
for r being Element of T st r = o -term p & ( for t being Element of T st t in rng p holds
S1[t] ) holds
S1[r]
proof
let o be
OperSymbol of
S;
for p being Element of Args (o,(Free (S,X)))
for r being Element of T st r = o -term p & ( for t being Element of T st t in rng p holds
S1[t] ) holds
S1[r]let p be
Element of
Args (
o,
(Free (S,X)));
for r being Element of T st r = o -term p & ( for t being Element of T st t in rng p holds
S1[t] ) holds
S1[r]let r be
Element of
T;
( r = o -term p & ( for t being Element of T st t in rng p holds
S1[t] ) implies S1[r] )
assume Z1:
r = o -term p
;
( ex t being Element of T st
( t in rng p & not S1[t] ) or S1[r] )
assume Z2:
for
t being
Element of
T st
t in rng p holds
S1[
t]
;
S1[r]
assume
r is
x2 -omitting
;
(Hom (T,x1,x2)) . r is x1 -omitting
then S3:
o -term p is
x2 -omitting
by Z1;
the_sort_of (@ r) = the_sort_of r
by Lem00;
then A6:
the_sort_of r = the_result_sort_of o
by Z1, Th8;
then
o -term p in the
Sorts of
T . (the_result_sort_of o)
by Z1, SORT;
then A5:
(Den (o,(Free (S,X)))) . p in the
Sorts of
T . (the_result_sort_of o)
by MSAFREE4:13;
then reconsider q =
p as
Element of
Args (
o,
T)
by MSAFREE4:def 8;
Args (
o,
T)
c= Args (
o,
(Free (S,X)))
by MSAFREE4:41;
then reconsider m =
(Hom (T,x1,x2)) # q as
Element of
Args (
o,
(Free (S,X))) ;
A7:
(
(Den (o,T)) . q = (Den (o,(Free (S,X)))) . p &
(Den (o,(Free (S,X)))) . p = o -term p )
by A5, MSAFREE4:def 8, MSAFREE4:13;
A9:
((Hom (T,x1,x2)) . (the_result_sort_of o)) . r =
(Den (o,T)) . ((Hom (T,x1,x2)) # q)
by Z1, A7, MSUALG_3:def 7, MSUALG_6:def 2
.=
(Den (o,(Free (S,X)))) . m
by AA, A7
.=
o -term m
by MSAFREE4:13
;
now for i being Nat st i in dom m holds
m /. i is x1 -omitting let i be
Nat;
( i in dom m implies m /. i is x1 -omitting )assume B1:
i in dom m
;
m /. i is x1 -omitting B2:
(
dom m = dom (the_arity_of o) &
dom (the_arity_of o) = dom p )
by MSUALG_3:6;
then B3:
(
p . i in rng p &
p /. i = p . i &
p . i = q /. i )
by B1, FUNCT_1:def 3, PARTFUN1:def 6;
then B4:
S1[
q /. i]
by Z2;
q /. i in the
Sorts of
T . ((the_arity_of o) /. i)
by B1, B2, B3, MSUALG_6:2;
then B5:
the_sort_of (q /. i) = (the_arity_of o) /. i
by SORT;
(
m /. i = m . i &
m . i = ((Hom (T,x1,x2)) . ((the_arity_of o) /. i)) . (q /. i) )
by B1, PARTFUN1:def 6, B2, B3, MSUALG_3:def 6;
then
(
(Hom (T,x1,x2)) . (q /. i) = m /. i &
p /. i is
x2 -omitting )
by B1, B2, S3, B5, ABBR, Th54;
hence
m /. i is
x1 -omitting
by B3, B4, OMIT;
verum end;
then
o -term m is
x1 -omitting
by Th54;
hence
(Hom (T,x1,x2)) . r is
x1 -omitting
by A9, A6, ABBR;
verum
end;
thus
S1[r]
from MSAFREE5:sch 3(A1, A2); verum