Journal of Formalized Mathematics
Volume 13, 2001
University of Bialystok
Copyright (c) 2001
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Grzegorz Bancerek
- Received April 10, 2001
- MML identifier: CIRCTRM1
- [
Mizar article,
MML identifier index
]
environ
vocabulary AMI_1, MSUALG_1, ZF_REFLE, MSATERM, FUNCT_1, TREES_4, FREEALG,
RELAT_1, BOOLE, PBOOLE, TREES_9, CIRCCOMB, MSAFREE2, TREES_1, FINSEQ_1,
QC_LANG1, TREES_3, FINSET_1, TREES_2, PARTFUN1, FUNCT_4, MCART_1,
PRALG_1, TDGROUP, CARD_3, PRE_CIRC, FACIRC_1, FUNCT_6, PUA2MSS1,
ISOCAT_1, CQC_SIM1, CIRCUIT1, CIRCUIT2, CIRCTRM1;
notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, NUMBERS, XREAL_0, NAT_1,
RELAT_1, FUNCT_1, FUNCT_2, FINSEQ_1, FINSET_1, PARTFUN1, MCART_1,
FUNCT_4, CARD_3, STRUCT_0, PRALG_1, PBOOLE, MSUALG_1, PRE_CIRC, MSAFREE2,
CIRCUIT1, CIRCUIT2, CIRCCOMB, FACIRC_1, TREES_1, TREES_2, TREES_3,
TREES_4, TREES_9, MSATERM, PUA2MSS1;
constructors TREES_9, MSATERM, FINSEQ_4, MSUALG_3, CIRCUIT1, CIRCUIT2,
FACIRC_1, PUA2MSS1, INSTALG1;
clusters ARYTM_3, SUBSET_1, STRUCT_0, PRELAMB, FUNCT_1, RELSET_1, FINSEQ_1,
MSUALG_1, MSUALG_2, TREES_2, TREES_3, XBOOLE_0, TREES_9, PRALG_1,
MSAFREE, MSATERM, PRE_CIRC, CIRCCOMB, INSTALG1, MEMBERED;
requirements NUMERALS, BOOLE, SUBSET;
begin :: <section1>Circuit structure generated by terms</section1>
theorem :: CIRCTRM1:1
for S being non empty non void ManySortedSign
for A being non-empty MSAlgebra over S
for V being Variables of A
for t being Term of S,V, T being c-Term of A,V st T = t
holds the_sort_of T = the_sort_of t;
definition let D be non empty set;
let X be Subset of D;
redefine func id X -> Function of X, D;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
func X-CircuitStr -> non empty strict ManySortedSign equals
:: CIRCTRM1:def 1
ManySortedSign(#
Subtrees X, [:the OperSymbols of S,{the carrier of S}:]-Subtrees X,
[:the OperSymbols of S,{the carrier of S}:]-ImmediateSubtrees X,
id ([:the OperSymbols of S,{the carrier of S}:]-Subtrees X)
#);
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
cluster X-CircuitStr -> unsplit;
end;
reserve S for non empty non void ManySortedSign,
V for non-empty ManySortedSet of the carrier of S,
A for non-empty MSAlgebra over S,
X for non empty Subset of S-Terms V,
t for Element of X;
theorem :: CIRCTRM1:2
X-CircuitStr is void iff
for t being Element of X holds t is root &
not t.{} in [:the OperSymbols of S, {the carrier of S}:];
theorem :: CIRCTRM1:3
X is SetWithCompoundTerm of S,V iff X-CircuitStr is non void;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be SetWithCompoundTerm of S,V;
cluster X-CircuitStr -> non void;
end;
theorem :: CIRCTRM1:4
(for v being Vertex of X-CircuitStr holds v is Term of S,V) &
(for s being set st s in the OperSymbols of X-CircuitStr holds
s is CompoundTerm of S,V);
theorem :: CIRCTRM1:5
for t being Vertex of X-CircuitStr holds
t in the OperSymbols of X-CircuitStr iff t is CompoundTerm of S,V;
theorem :: CIRCTRM1:6
for X being SetWithCompoundTerm of S,V, g being Gate of X-CircuitStr holds
(the ResultSort of X-CircuitStr).g = g & the_result_sort_of g = g;
definition
let S,V;
let X be SetWithCompoundTerm of S,V, g be Gate of X-CircuitStr;
cluster the_arity_of g -> DTree-yielding;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
cluster -> finite Function-like Relation-like Vertex of X-CircuitStr;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
cluster -> DecoratedTree-like Vertex of X-CircuitStr;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be SetWithCompoundTerm of S,V;
cluster -> finite Function-like Relation-like Gate of X-CircuitStr;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be SetWithCompoundTerm of S,V;
cluster -> DecoratedTree-like Gate of X-CircuitStr;
end;
::theorem
:: for X being SetWithCompoundTerm of A,V, g being Gate of X-CircuitStr
:: for t being Term of A,V st t = g holds
:: the_arity_of g = subs t ? subs g
theorem :: CIRCTRM1:7
for X1,X2 being non empty Subset of S-Terms V holds
the Arity of X1-CircuitStr tolerates the Arity of X2-CircuitStr &
the ResultSort of X1-CircuitStr tolerates the ResultSort of X2-CircuitStr;
definition
let X,Y be constituted-DTrees set;
cluster X \/ Y -> constituted-DTrees;
end;
theorem :: CIRCTRM1:8
for X1,X2 being constituted-DTrees non empty set holds
Subtrees (X1 \/ X2) = (Subtrees X1) \/ (Subtrees X2);
theorem :: CIRCTRM1:9
for X1,X2 being constituted-DTrees non empty set, C be set holds
C-Subtrees (X1 \/ X2) = (C-Subtrees X1) \/ (C-Subtrees X2);
theorem :: CIRCTRM1:10
for X1,X2 being constituted-DTrees non empty set st
(for t being Element of X1 holds t is finite) &
(for t being Element of X2 holds t is finite)
for C be set holds
C-ImmediateSubtrees (X1 \/ X2)
= (C-ImmediateSubtrees X1)+*(C-ImmediateSubtrees X2);
theorem :: CIRCTRM1:11
for X1,X2 being non empty Subset of S-Terms V holds
(X1 \/ X2)-CircuitStr = (X1-CircuitStr)+*(X2-CircuitStr);
theorem :: CIRCTRM1:12
for x being set holds x in InputVertices (X-CircuitStr) iff x in Subtrees X &
ex s being SortSymbol of S, v being Element of V.s st x = root-tree [v,s];
theorem :: CIRCTRM1:13
for X being SetWithCompoundTerm of S,V, g being Gate of X-CircuitStr
holds g = (g.{})-tree the_arity_of g;
begin :: <section2>Circuit genereted by terms</section2>
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let v be Vertex of X-CircuitStr;
let A be MSAlgebra over S;
func the_sort_of (v, A) means
:: CIRCTRM1:def 2
for u being Term of S,V st u = v holds it = (the Sorts of A).the_sort_of u;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let v be Vertex of X-CircuitStr;
let A be non-empty MSAlgebra over S;
cluster the_sort_of (v, A) -> non empty;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V; assume
X is SetWithCompoundTerm of S,V;
let o be Gate of X-CircuitStr;
let A be MSAlgebra over S;
func the_action_of (o, A) -> Function means
:: CIRCTRM1:def 3
for X' being SetWithCompoundTerm of S,V st X' = X
for o' being Gate of X'-CircuitStr st o' = o holds
it = (the Charact of A).(o'.{})`1;
end;
scheme MSFuncEx {I() -> non empty set, A,B() -> non-empty ManySortedSet of I(),
P[set,set,set]}:
ex f being ManySortedFunction of A(),B() st
for i being Element of I(), a being Element of A().i holds P[i,a,f.i.a]
provided
for i being Element of I(), a being Element of A().i
ex b being Element of B().i st P[i,a,b];
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let A be MSAlgebra over S;
func X-CircuitSorts A ->
ManySortedSet of the carrier of X-CircuitStr means
:: CIRCTRM1:def 4
for v being Vertex of X-CircuitStr holds it.v = the_sort_of (v, A);
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let A be non-empty MSAlgebra over S;
cluster X-CircuitSorts A -> non-empty;
end;
theorem :: CIRCTRM1:14
for X being SetWithCompoundTerm of S,V,
g being Gate of X-CircuitStr
for o being OperSymbol of S st g.{} = [o,the carrier of S] holds
(X-CircuitSorts A)*the_arity_of g = (the Sorts of A)*the_arity_of o;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let A be non-empty MSAlgebra over S;
func X-CircuitCharact A -> ManySortedFunction of
(X-CircuitSorts A)#*(the Arity of X-CircuitStr),
(X-CircuitSorts A)*(the ResultSort of X-CircuitStr)
means
:: CIRCTRM1:def 5
for g being Gate of X-CircuitStr st g in the OperSymbols of X-CircuitStr
holds it.g = the_action_of (g, A);
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let A be non-empty MSAlgebra over S;
func X-Circuit A -> non-empty strict MSAlgebra over X-CircuitStr equals
:: CIRCTRM1:def 6
MSAlgebra(#X-CircuitSorts A, X-CircuitCharact A#);
end;
theorem :: CIRCTRM1:15
for v being Vertex of X-CircuitStr
holds (the Sorts of X-Circuit A).v = the_sort_of (v, A);
theorem :: CIRCTRM1:16
for A being locally-finite non-empty MSAlgebra over S
for X being SetWithCompoundTerm of S,V
for g being OperSymbol of X-CircuitStr
holds Den(g, X-Circuit A) = the_action_of (g, A);
theorem :: CIRCTRM1:17
for A being locally-finite non-empty MSAlgebra over S
for X being SetWithCompoundTerm of S,V
for g being OperSymbol of X-CircuitStr, o being OperSymbol of S
st g.{} = [o, the carrier of S]
holds Den(g, X-Circuit A) = Den(o,A);
theorem :: CIRCTRM1:18
for A being locally-finite non-empty MSAlgebra over S,
X being non empty Subset of S-Terms V holds
X-Circuit A is locally-finite;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be SetWithCompoundTerm of S,V;
let A be locally-finite non-empty MSAlgebra over S;
cluster X-Circuit A -> locally-finite;
end;
theorem :: CIRCTRM1:19
for S being non empty non void ManySortedSign
for V being non-empty ManySortedSet of the carrier of S
for X1,X2 being SetWithCompoundTerm of S,V
for A being non-empty MSAlgebra over S holds
X1-Circuit A tolerates X2-Circuit A;
theorem :: CIRCTRM1:20
for S being non empty non void ManySortedSign
for V being non-empty ManySortedSet of the carrier of S
for X1,X2 being SetWithCompoundTerm of S,V
for A being non-empty MSAlgebra over S holds
(X1 \/ X2)-Circuit A = (X1-Circuit A)+*(X2-Circuit A);
begin :: <section3>Correctness of a Term Circuit</section3>
reserve S for non empty non void ManySortedSign,
A for non-empty locally-finite MSAlgebra over S,
V for Variables of A,
X for SetWithCompoundTerm of S,V;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let V be Variables of A;
let t be DecoratedTree such that t is Term of S,V;
let f be ManySortedFunction of V, the Sorts of A;
func t@(f,A) means
:: CIRCTRM1:def 7
ex t' being c-Term of A,V st t' = t & it = t'@f;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let X be SetWithCompoundTerm of S,V;
let A be non-empty locally-finite MSAlgebra over S;
let s be State of X-Circuit A;
mode CompatibleValuation of s -> ManySortedFunction of V, the Sorts of A
means
:: CIRCTRM1:def 8
for x being Vertex of S, v being Element of V.x
st root-tree [v,x] in Subtrees X
holds it.x.v = s.root-tree [v,x];
end;
theorem :: CIRCTRM1:21
for s being State of X-Circuit A
for f being CompatibleValuation of s, n being Nat
holds f is CompatibleValuation of Following(s,n);
definition
let x be set;
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let p be FinSequence of S-Terms V;
cluster x-tree p -> finite;
end;
theorem :: CIRCTRM1:22
for s being State of X-Circuit A
for f being CompatibleValuation of s
for t being Term of S,V st t in Subtrees X holds
Following(s, 1+height dom t) is_stable_at t &
Following(s, 1+height dom t).t = t@(f,A);
theorem :: CIRCTRM1:23
not (ex t being Term of S,V, o being OperSymbol of S st
t in Subtrees X & t.{} = [o,the carrier of S] & the_arity_of o = {})
implies
for s being State of X-Circuit A
for f being CompatibleValuation of s
for t being Term of S,V st t in Subtrees X holds
Following(s, height dom t) is_stable_at t &
Following(s, height dom t).t = t@(f, A);
begin :: <section4>Circuit similarity</section4>
definition
let X be set;
cluster id X -> one-to-one;
end;
definition
let f be one-to-one Function;
cluster f" -> one-to-one;
let g be one-to-one Function;
cluster g*f -> one-to-one;
end;
definition
let S1, S2 be non empty ManySortedSign;
let f,g be Function;
pred S1, S2 are_equivalent_wrt f, g means
:: CIRCTRM1:def 9
f is one-to-one & g is one-to-one &
f, g form_morphism_between S1, S2 &
f", g" form_morphism_between S2, S1;
end;
theorem :: CIRCTRM1:24
for S1, S2 being non empty ManySortedSign, f,g being Function
st S1, S2 are_equivalent_wrt f, g
holds the carrier of S2 = f.:the carrier of S1 &
the OperSymbols of S2 = g.:the OperSymbols of S1;
theorem :: CIRCTRM1:25
for S1, S2 being non empty ManySortedSign, f,g being Function
st S1, S2 are_equivalent_wrt f, g
holds rng f = the carrier of S2 & rng g = the OperSymbols of S2;
theorem :: CIRCTRM1:26
for S being non empty ManySortedSign holds
S, S are_equivalent_wrt id the carrier of S, id the OperSymbols of S;
theorem :: CIRCTRM1:27
for S1, S2 being non empty ManySortedSign, f,g being Function
st S1, S2 are_equivalent_wrt f, g
holds S2, S1 are_equivalent_wrt f", g";
theorem :: CIRCTRM1:28
for S1, S2, S3 being non empty ManySortedSign, f1,g1, f2,g2 being Function
st S1, S2 are_equivalent_wrt f1, g1 & S2, S3 are_equivalent_wrt f2, g2
holds S1, S3 are_equivalent_wrt f2*f1, g2*g1;
theorem :: CIRCTRM1:29
for S1, S2 being non empty ManySortedSign, f,g being Function
st S1, S2 are_equivalent_wrt f, g
holds
f.:InputVertices S1 = InputVertices S2 &
f.:InnerVertices S1 = InnerVertices S2;
definition
let S1, S2 be non empty ManySortedSign;
pred S1, S2 are_equivalent means
:: CIRCTRM1:def 10
ex f,g being one-to-one Function st S1, S2 are_equivalent_wrt f, g;
reflexivity;
symmetry;
end;
theorem :: CIRCTRM1:30
for S1, S2, S3 being non empty ManySortedSign
st S1, S2 are_equivalent & S2, S3 are_equivalent
holds S1, S3 are_equivalent;
definition
let S1, S2 be non empty ManySortedSign;
let f be Function;
pred f preserves_inputs_of S1, S2 means
:: CIRCTRM1:def 11
f.:InputVertices S1 c= InputVertices S2;
end;
theorem :: CIRCTRM1:31
for S1, S2 being non empty ManySortedSign
for f, g being Function st f, g form_morphism_between S1, S2
for v being Vertex of S1 holds f.v is Vertex of S2;
theorem :: CIRCTRM1:32
for S1, S2 being non empty non void ManySortedSign
for f, g being Function st f, g form_morphism_between S1, S2
for v being Gate of S1 holds g.v is Gate of S2;
theorem :: CIRCTRM1:33
for S1, S2 being non empty ManySortedSign
for f, g being Function st f, g form_morphism_between S1, S2
holds f.:InnerVertices S1 c= InnerVertices S2;
theorem :: CIRCTRM1:34
for S1, S2 being Circuit-like (non void non empty ManySortedSign)
for f, g being Function st f, g form_morphism_between S1, S2
for v1 being Vertex of S1 st v1 in InnerVertices S1
for v2 being Vertex of S2 st v2 = f.v1
holds action_at v2 = g.action_at v1;
definition
let S1, S2 be non empty ManySortedSign;
let f,g be Function;
let C1 be non-empty MSAlgebra over S1;
let C2 be non-empty MSAlgebra over S2;
pred f, g form_embedding_of C1, C2 means
:: CIRCTRM1:def 12
f is one-to-one & g is one-to-one & f, g form_morphism_between S1, S2 &
the Sorts of C1 = (the Sorts of C2)*f &
the Charact of C1 = (the Charact of C2)*g;
end;
theorem :: CIRCTRM1:35
for S being non empty ManySortedSign
for C being non-empty MSAlgebra over S
holds id the carrier of S, id the OperSymbols of S form_embedding_of C, C;
theorem :: CIRCTRM1:36
for S1,S2,S3 being non empty ManySortedSign
for f1,g1, f2,g2 being Function
for C1 being non-empty MSAlgebra over S1
for C2 being non-empty MSAlgebra over S2
for C3 being non-empty MSAlgebra over S3
st f1,g1 form_embedding_of C1,C2 & f2,g2 form_embedding_of C2,C3
holds f2*f1, g2*g1 form_embedding_of C1, C3;
definition
let S1, S2 be non empty ManySortedSign;
let f,g be Function;
let C1 be non-empty MSAlgebra over S1;
let C2 be non-empty MSAlgebra over S2;
pred C1, C2 are_similar_wrt f, g means
:: CIRCTRM1:def 13
f, g form_embedding_of C1, C2 & f", g" form_embedding_of C2, C1;
end;
theorem :: CIRCTRM1:37
for S1, S2 being non empty ManySortedSign
for f, g being Function
for C1 being non-empty MSAlgebra over S1
for C2 being non-empty MSAlgebra over S2
st C1, C2 are_similar_wrt f, g
holds S1, S2 are_equivalent_wrt f, g;
theorem :: CIRCTRM1:38
for S1, S2 being non empty ManySortedSign
for f, g being Function
for C1 being non-empty MSAlgebra over S1
for C2 being non-empty MSAlgebra over S2 holds
C1, C2 are_similar_wrt f, g
iff
S1, S2 are_equivalent_wrt f, g &
the Sorts of C1 = (the Sorts of C2)*f &
the Charact of C1 = (the Charact of C2)*g;
theorem :: CIRCTRM1:39
for S being non empty ManySortedSign
for C being non-empty MSAlgebra over S
holds C, C are_similar_wrt id the carrier of S, id the OperSymbols of S;
theorem :: CIRCTRM1:40
for S1, S2 being non empty ManySortedSign
for f, g being Function
for C1 being non-empty MSAlgebra over S1
for C2 being non-empty MSAlgebra over S2
st C1, C2 are_similar_wrt f, g
holds C2, C1 are_similar_wrt f", g";
theorem :: CIRCTRM1:41
for S1, S2, S3 being non empty ManySortedSign
for f1, g1, f2, g2 being Function
for C1 being non-empty MSAlgebra over S1
for C2 being non-empty MSAlgebra over S2
for C3 being non-empty MSAlgebra over S3
st C1, C2 are_similar_wrt f1, g1 & C2, C3 are_similar_wrt f2, g2
holds C1, C3 are_similar_wrt f2*f1, g2*g1;
definition
let S1, S2 be non empty ManySortedSign;
let C1 be non-empty MSAlgebra over S1;
let C2 be non-empty MSAlgebra over S2;
pred C1, C2 are_similar means
:: CIRCTRM1:def 14
ex f, g being Function st C1, C2 are_similar_wrt f, g;
end;
reserve
G1, G2 for Circuit-like non void (non empty ManySortedSign),
f, g for Function,
C1 for non-empty Circuit of G1,
C2 for non-empty Circuit of G2;
theorem :: CIRCTRM1:42
f, g form_embedding_of C1, C2 implies
dom f = the carrier of G1 & rng f c= the carrier of G2 &
dom g = the OperSymbols of G1 & rng g c= the OperSymbols of G2;
theorem :: CIRCTRM1:43
f, g form_embedding_of C1, C2 implies
for o1 being Gate of G1, o2 being Gate of G2 st o2 = g.o1
holds Den(o2, C2) = Den(o1, C1);
theorem :: CIRCTRM1:44
f, g form_embedding_of C1, C2 implies
for o1 being Gate of G1, o2 being Gate of G2 st o2 = g.o1
for s1 being State of C1, s2 being State of C2 st s1 = s2*f
holds o2 depends_on_in s2 = o1 depends_on_in s1;
theorem :: CIRCTRM1:45
f, g form_embedding_of C1, C2 implies
for s being State of C2 holds s*f is State of C1;
theorem :: CIRCTRM1:46
f, g form_embedding_of C1, C2 implies
for s2 being State of C2, s1 being State of C1
st s1 = s2*f &
for v being Vertex of G1 st v in InputVertices G1
holds s2 is_stable_at f.v
holds Following s1 = (Following s2)*f;
theorem :: CIRCTRM1:47
f, g form_embedding_of C1, C2 & f preserves_inputs_of G1, G2 implies
for s2 being State of C2, s1 being State of C1 st s1 = s2*f
holds Following s1 = (Following s2)*f;
theorem :: CIRCTRM1:48
f, g form_embedding_of C1, C2 & f preserves_inputs_of G1, G2 implies
for s2 being State of C2, s1 being State of C1 st s1 = s2*f
for n being Nat
holds Following(s1,n) = Following(s2,n)*f;
theorem :: CIRCTRM1:49
f, g form_embedding_of C1, C2 & f preserves_inputs_of G1, G2 implies
for s2 being State of C2, s1 being State of C1 st s1 = s2*f
holds s2 is stable implies s1 is stable;
theorem :: CIRCTRM1:50
f, g form_embedding_of C1, C2 & f preserves_inputs_of G1, G2 implies
for s2 being State of C2, s1 being State of C1 st s1 = s2*f
for v1 being Vertex of G1
holds s1 is_stable_at v1 iff s2 is_stable_at f.v1;
theorem :: CIRCTRM1:51
C1, C2 are_similar_wrt f, g implies
for s being State of C2 holds s*f is State of C1;
theorem :: CIRCTRM1:52
C1, C2 are_similar_wrt f, g implies
for s1 being State of C1, s2 being State of C2
holds s1 = s2*f iff s2 = s1*f";
theorem :: CIRCTRM1:53
C1, C2 are_similar_wrt f, g implies
f.:InputVertices G1 = InputVertices G2 &
f.:InnerVertices G1 = InnerVertices G2;
theorem :: CIRCTRM1:54
C1, C2 are_similar_wrt f, g implies f preserves_inputs_of G1, G2;
theorem :: CIRCTRM1:55
C1, C2 are_similar_wrt f, g implies
for s1 being State of C1, s2 being State of C2 st s1 = s2*f
holds Following s1 = (Following s2)*f;
theorem :: CIRCTRM1:56
C1, C2 are_similar_wrt f, g implies
for s1 being State of C1, s2 being State of C2 st s1 = s2*f
for n being Nat holds Following(s1,n) = Following(s2,n)*f;
theorem :: CIRCTRM1:57
C1, C2 are_similar_wrt f, g implies
for s1 being State of C1, s2 being State of C2 st s1 = s2*f
holds s1 is stable iff s2 is stable;
theorem :: CIRCTRM1:58
C1, C2 are_similar_wrt f, g implies
for s1 being State of C1, s2 being State of C2 st s1 = s2*f
for v1 being Vertex of G1
holds s1 is_stable_at v1 iff s2 is_stable_at f.v1;
begin :: <section5>Term specification</section5>
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let V be non-empty ManySortedSet of the carrier of S;
let X be non empty Subset of S-Terms V;
let G be Circuit-like non void (non empty ManySortedSign);
let C be non-empty Circuit of G;
pred C calculates X, A means
:: CIRCTRM1:def 15
ex f, g st f, g form_embedding_of X-Circuit A, C &
f preserves_inputs_of X-CircuitStr, G;
pred X, A specifies C means
:: CIRCTRM1:def 16
C, X-Circuit A are_similar;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let A be non-empty MSAlgebra over S;
let X be non empty Subset of S-Terms V;
let G be Circuit-like non void (non empty ManySortedSign);
let C be non-empty Circuit of G;
assume C calculates X, A;
mode SortMap of X, A, C -> one-to-one Function means
:: CIRCTRM1:def 17
it preserves_inputs_of X-CircuitStr, G &
ex g st it, g form_embedding_of X-Circuit A, C;
end;
definition
let S be non empty non void ManySortedSign;
let V be non-empty ManySortedSet of the carrier of S;
let A be non-empty MSAlgebra over S;
let X be non empty Subset of S-Terms V;
let G be Circuit-like non void (non empty ManySortedSign);
let C be non-empty Circuit of G such that
C calculates X, A;
let f be SortMap of X, A, C;
mode OperMap of X, A, C, f -> one-to-one Function means
:: CIRCTRM1:def 18
f, it form_embedding_of X-Circuit A, C;
end;
theorem :: CIRCTRM1:59
for G being Circuit-like non void (non empty ManySortedSign)
for C being non-empty Circuit of G
st X, A specifies C
holds C calculates X, A;
theorem :: CIRCTRM1:60
for G being Circuit-like non void (non empty ManySortedSign)
for C being non-empty Circuit of G
st C calculates X, A
for f being SortMap of X, A, C
for t being Term of S,V st t in Subtrees X
for s being State of C
holds Following(s, 1+height dom t) is_stable_at f.t &
for s' being State of X-Circuit A st s' = s*f
for h being CompatibleValuation of s'
holds Following(s, 1+height dom t).(f.t) = t@(h, A);
theorem :: CIRCTRM1:61
for G being Circuit-like non void (non empty ManySortedSign)
for C being non-empty Circuit of G
st C calculates X, A
for t being Term of S,V st t in Subtrees X
ex v being Vertex of G st
for s being State of C holds Following(s, 1+height dom t) is_stable_at v &
ex f being SortMap of X, A, C st
for s' being State of X-Circuit A st s' = s*f
for h being CompatibleValuation of s'
holds Following(s, 1+height dom t).v = t@(h, A);
theorem :: CIRCTRM1:62
for G being Circuit-like non void (non empty ManySortedSign)
for C being non-empty Circuit of G
st X, A specifies C
for f being SortMap of X, A, C
for s being State of C, t being Term of S,V st t in Subtrees X
holds Following(s, 1+height dom t) is_stable_at f.t &
for s' being State of X-Circuit A st s' = s*f
for h being CompatibleValuation of s'
holds Following(s, 1+height dom t).(f.t) = t@(h, A);
theorem :: CIRCTRM1:63
for G being Circuit-like non void (non empty ManySortedSign)
for C being non-empty Circuit of G
st X, A specifies C
for t being Term of S,V st t in Subtrees X
ex v being Vertex of G st
for s being State of C holds Following(s, 1+height dom t) is_stable_at v &
ex f being SortMap of X, A, C st
for s' being State of X-Circuit A st s' = s*f
for h being CompatibleValuation of s'
holds Following(s, 1+height dom t).v = t@(h, A);
Back to top