let it1, it2 be Element of Fin Int-Locations ; :: thesis: ( ( InsCode i in {1,2,3,4,5} & ex a, b being Int-Location st
( ( i = a := b or i = AddTo a,b or i = SubFrom a,b or i = MultBy a,b or i = Divide a,b ) & it1 = {a,b} ) & ex a, b being Int-Location st
( ( i = a := b or i = AddTo a,b or i = SubFrom a,b or i = MultBy a,b or i = Divide a,b ) & it2 = {a,b} ) implies it1 = it2 ) & ( ( InsCode i = 7 or InsCode i = 8 ) & ex a being Int-Location ex l being Instruction-Location of SCM+FSA st
( ( i = a =0_goto l or i = a >0_goto l ) & it1 = {a} ) & ex a being Int-Location ex l being Instruction-Location of SCM+FSA st
( ( i = a =0_goto l or i = a >0_goto l ) & it2 = {a} ) implies it1 = it2 ) & ( ( InsCode i = 9 or InsCode i = 10 ) & ex a, b being Int-Location ex f being FinSeq-Location st
( ( i = b := f,a or i = f,a := b ) & it1 = {a,b} ) & ex a, b being Int-Location ex f being FinSeq-Location st
( ( i = b := f,a or i = f,a := b ) & it2 = {a,b} ) implies it1 = it2 ) & ( ( InsCode i = 11 or InsCode i = 12 ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it1 = {a} ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it2 = {a} ) implies it1 = it2 ) & ( InsCode i in {1,2,3,4,5} or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 or not it1 = {} or not it2 = {} or it1 = it2 ) )
hereby :: thesis: ( ( ( InsCode i = 7 or InsCode i = 8 ) & ex a being Int-Location ex l being Instruction-Location of SCM+FSA st
( ( i = a =0_goto l or i = a >0_goto l ) & it1 = {a} ) & ex a being Int-Location ex l being Instruction-Location of SCM+FSA st
( ( i = a =0_goto l or i = a >0_goto l ) & it2 = {a} ) implies it1 = it2 ) & ( ( InsCode i = 9 or InsCode i = 10 ) & ex a, b being Int-Location ex f being FinSeq-Location st
( ( i = b := f,a or i = f,a := b ) & it1 = {a,b} ) & ex a, b being Int-Location ex f being FinSeq-Location st
( ( i = b := f,a or i = f,a := b ) & it2 = {a,b} ) implies it1 = it2 ) & ( ( InsCode i = 11 or InsCode i = 12 ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it1 = {a} ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it2 = {a} ) implies it1 = it2 ) & ( InsCode i in {1,2,3,4,5} or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 or not it1 = {} or not it2 = {} or it1 = it2 ) )
assume
InsCode i in {1,2,3,4,5}
;
:: thesis: ( ex a1, b1 being Int-Location st
( ( i = a1 := b1 or i = AddTo a1,b1 or i = SubFrom a1,b1 or i = MultBy a1,b1 or i = Divide a1,b1 ) & it1 = {a1,b1} ) & ex a2, b2 being Int-Location st
( ( i = a2 := b2 or i = AddTo a2,b2 or i = SubFrom a2,b2 or i = MultBy a2,b2 or i = Divide a2,b2 ) & it2 = {a2,b2} ) implies it1 = it2 )given a1,
b1 being
Int-Location such that A5:
( (
i = a1 := b1 or
i = AddTo a1,
b1 or
i = SubFrom a1,
b1 or
i = MultBy a1,
b1 or
i = Divide a1,
b1 ) &
it1 = {a1,b1} )
;
:: thesis: ( ex a2, b2 being Int-Location st
( ( i = a2 := b2 or i = AddTo a2,b2 or i = SubFrom a2,b2 or i = MultBy a2,b2 or i = Divide a2,b2 ) & it2 = {a2,b2} ) implies it1 = it2 )given a2,
b2 being
Int-Location such that A6:
( (
i = a2 := b2 or
i = AddTo a2,
b2 or
i = SubFrom a2,
b2 or
i = MultBy a2,
b2 or
i = Divide a2,
b2 ) &
it2 = {a2,b2} )
;
:: thesis: it1 = it2A7:
( (
i = AddTo a1,
b1 or
i = AddTo a2,
b2 ) implies
InsCode i = 2 )
by SCMFSA_2:43;
A8:
( (
i = SubFrom a1,
b1 or
i = SubFrom a2,
b2 ) implies
InsCode i = 3 )
by SCMFSA_2:44;
A9:
( (
i = MultBy a1,
b1 or
i = MultBy a2,
b2 ) implies
InsCode i = 4 )
by SCMFSA_2:45;
A10:
( (
i = Divide a1,
b1 or
i = Divide a2,
b2 ) implies
InsCode i = 5 )
by SCMFSA_2:46;
per cases
( ( i = a1 := b1 & i = a2 := b2 ) or ( i = AddTo a1,b1 & i = AddTo a2,b2 ) or ( i = SubFrom a1,b1 & i = SubFrom a2,b2 ) or ( i = MultBy a1,b1 & i = MultBy a2,b2 ) or ( i = Divide a1,b1 & i = Divide a2,b2 ) )
by A5, A6, A7, A8, A9, A10, SCMFSA_2:42;
end;
end;
hereby :: thesis: ( ( ( InsCode i = 9 or InsCode i = 10 ) & ex a, b being Int-Location ex f being FinSeq-Location st
( ( i = b := f,a or i = f,a := b ) & it1 = {a,b} ) & ex a, b being Int-Location ex f being FinSeq-Location st
( ( i = b := f,a or i = f,a := b ) & it2 = {a,b} ) implies it1 = it2 ) & ( ( InsCode i = 11 or InsCode i = 12 ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it1 = {a} ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it2 = {a} ) implies it1 = it2 ) & ( InsCode i in {1,2,3,4,5} or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 or not it1 = {} or not it2 = {} or it1 = it2 ) )
end;
hereby :: thesis: ( ( ( InsCode i = 11 or InsCode i = 12 ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it1 = {a} ) & ex a being Int-Location ex f being FinSeq-Location st
( ( i = a :=len f or i = f :=<0,...,0> a ) & it2 = {a} ) implies it1 = it2 ) & ( InsCode i in {1,2,3,4,5} or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 or not it1 = {} or not it2 = {} or it1 = it2 ) )
assume
(
InsCode i = 9 or
InsCode i = 10 )
;
:: thesis: ( ex a1, b1 being Int-Location ex f1 being FinSeq-Location st
( ( i = b1 := f1,a1 or i = f1,a1 := b1 ) & it1 = {a1,b1} ) & ex a2, b2 being Int-Location ex f2 being FinSeq-Location st
( ( i = b2 := f2,a2 or i = f2,a2 := b2 ) & it2 = {a2,b2} ) implies it1 = it2 )given a1,
b1 being
Int-Location ,
f1 being
FinSeq-Location such that A14:
( (
i = b1 := f1,
a1 or
i = f1,
a1 := b1 ) &
it1 = {a1,b1} )
;
:: thesis: ( ex a2, b2 being Int-Location ex f2 being FinSeq-Location st
( ( i = b2 := f2,a2 or i = f2,a2 := b2 ) & it2 = {a2,b2} ) implies it1 = it2 )given a2,
b2 being
Int-Location ,
f2 being
FinSeq-Location such that A15:
( (
i = b2 := f2,
a2 or
i = f2,
a2 := b2 ) &
it2 = {a2,b2} )
;
:: thesis: it1 = it2A16:
( (
i = f1,
a1 := b1 or
i = f2,
a2 := b2 ) implies
InsCode i = 10 )
by SCMFSA_2:51;
end;
hereby :: thesis: ( InsCode i in {1,2,3,4,5} or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 or not it1 = {} or not it2 = {} or it1 = it2 )
assume
(
InsCode i = 11 or
InsCode i = 12 )
;
:: thesis: ( ex a1 being Int-Location ex f1 being FinSeq-Location st
( ( i = a1 :=len f1 or i = f1 :=<0,...,0> a1 ) & it1 = {a1} ) & ex a2 being Int-Location ex f2 being FinSeq-Location st
( ( i = a2 :=len f2 or i = f2 :=<0,...,0> a2 ) & it2 = {a2} ) implies it1 = it2 )given a1 being
Int-Location ,
f1 being
FinSeq-Location such that A17:
( (
i = a1 :=len f1 or
i = f1 :=<0,...,0> a1 ) &
it1 = {a1} )
;
:: thesis: ( ex a2 being Int-Location ex f2 being FinSeq-Location st
( ( i = a2 :=len f2 or i = f2 :=<0,...,0> a2 ) & it2 = {a2} ) implies it1 = it2 )given a2 being
Int-Location ,
f2 being
FinSeq-Location such that A18:
( (
i = a2 :=len f2 or
i = f2 :=<0,...,0> a2 ) &
it2 = {a2} )
;
:: thesis: it1 = it2A19:
( (
i = f1 :=<0,...,0> a1 or
i = f2 :=<0,...,0> a2 ) implies
InsCode i = 12 )
by SCMFSA_2:53;
end;
thus
( InsCode i in {1,2,3,4,5} or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 or not it1 = {} or not it2 = {} or it1 = it2 )
; :: thesis: verum