:: MSUALG_4 semantic presentation begin registrationlet "I" be ($#m1_hidden :::"set"::: ) ; cluster ($#v1_relat_1 :::"Relation-like"::: ) "I" ($#v4_relat_1 :::"-defined"::: ) ($#v1_funct_1 :::"Function-like"::: ) ($#v1_partfun1 :::"total"::: ) ($#v2_funcop_1 :::"Relation-yielding"::: ) for ($#m1_hidden :::"set"::: ) ; end; definitionlet "I" be ($#m1_hidden :::"set"::: ) ; let "A", "B" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); mode :::"ManySortedRelation"::: "of" "A" "," "B" -> ($#m1_hidden :::"ManySortedSet":::) "of" "I" means :: MSUALG_4:def 1 (Bool "for" (Set (Var "i")) "being" ($#m1_hidden :::"set"::: ) "st" (Bool (Bool (Set (Var "i")) ($#r2_hidden :::"in"::: ) "I")) "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set (Var "i"))) "is" ($#m1_subset_1 :::"Relation":::) "of" (Set "(" "A" ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" ) "," (Set "(" "B" ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" ))); end; :: deftheorem defines :::"ManySortedRelation"::: MSUALG_4:def 1 : (Bool "for" (Set (Var "I")) "being" ($#m1_hidden :::"set"::: ) (Bool "for" (Set (Var "A")) "," (Set (Var "B")) "," (Set (Var "b4")) "being" ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Var "I")) "holds" (Bool "(" (Bool (Set (Var "b4")) "is" ($#m1_msualg_4 :::"ManySortedRelation"::: ) "of" (Set (Var "A")) "," (Set (Var "B"))) "iff" (Bool "for" (Set (Var "i")) "being" ($#m1_hidden :::"set"::: ) "st" (Bool (Bool (Set (Var "i")) ($#r2_hidden :::"in"::: ) (Set (Var "I")))) "holds" (Bool (Set (Set (Var "b4")) ($#k1_funct_1 :::"."::: ) (Set (Var "i"))) "is" ($#m1_subset_1 :::"Relation":::) "of" (Set "(" (Set (Var "A")) ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" ) "," (Set "(" (Set (Var "B")) ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" ))) ")" ))); registrationlet "I" be ($#m1_hidden :::"set"::: ) ; let "A", "B" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); cluster -> ($#v2_funcop_1 :::"Relation-yielding"::: ) for ($#m1_msualg_4 :::"ManySortedRelation"::: ) "of" "A" "," "B"; end; definitionlet "I" be ($#m1_hidden :::"set"::: ) ; let "A" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); mode ManySortedRelation of "A" is ($#m1_msualg_4 :::"ManySortedRelation"::: ) "of" "A" "," "A"; end; definitionlet "I" be ($#m1_hidden :::"set"::: ) ; let "A" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); let "IT" be ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Const "A")); attr "IT" is :::"MSEquivalence_Relation-like"::: means :: MSUALG_4:def 2 (Bool "for" (Set (Var "i")) "being" ($#m1_hidden :::"set"::: ) (Bool "for" (Set (Var "R")) "being" ($#m1_subset_1 :::"Relation":::) "of" (Set "(" "A" ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" ) "st" (Bool (Bool (Set (Var "i")) ($#r2_hidden :::"in"::: ) "I") & (Bool (Set "IT" ($#k1_funct_1 :::"."::: ) (Set (Var "i"))) ($#r1_hidden :::"="::: ) (Set (Var "R")))) "holds" (Bool (Set (Var "R")) "is" ($#m1_subset_1 :::"Equivalence_Relation":::) "of" (Set "(" "A" ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" )))); end; :: deftheorem defines :::"MSEquivalence_Relation-like"::: MSUALG_4:def 2 : (Bool "for" (Set (Var "I")) "being" ($#m1_hidden :::"set"::: ) (Bool "for" (Set (Var "A")) "being" ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Var "I")) (Bool "for" (Set (Var "IT")) "being" ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Var "A")) "holds" (Bool "(" (Bool (Set (Var "IT")) "is" ($#v1_msualg_4 :::"MSEquivalence_Relation-like"::: ) ) "iff" (Bool "for" (Set (Var "i")) "being" ($#m1_hidden :::"set"::: ) (Bool "for" (Set (Var "R")) "being" ($#m1_subset_1 :::"Relation":::) "of" (Set "(" (Set (Var "A")) ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" ) "st" (Bool (Bool (Set (Var "i")) ($#r2_hidden :::"in"::: ) (Set (Var "I"))) & (Bool (Set (Set (Var "IT")) ($#k1_funct_1 :::"."::: ) (Set (Var "i"))) ($#r1_hidden :::"="::: ) (Set (Var "R")))) "holds" (Bool (Set (Var "R")) "is" ($#m1_subset_1 :::"Equivalence_Relation":::) "of" (Set "(" (Set (Var "A")) ($#k1_funct_1 :::"."::: ) (Set (Var "i")) ")" )))) ")" )))); definitionlet "I" be ($#~v1_xboole_0 "non" ($#v1_xboole_0 :::"empty"::: ) ) ($#m1_hidden :::"set"::: ) ; let "A", "B" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); let "F" be ($#m1_msualg_4 :::"ManySortedRelation"::: ) "of" (Set (Const "A")) "," (Set (Const "B")); let "i" be ($#m1_subset_1 :::"Element"::: ) "of" (Set (Const "I")); :: original: :::"."::: redefine func "F" :::"."::: "i" -> ($#m1_subset_1 :::"Relation":::) "of" (Set "(" "A" ($#k1_funct_1 :::"."::: ) "i" ")" ) "," (Set "(" "B" ($#k1_funct_1 :::"."::: ) "i" ")" ); end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); mode ManySortedRelation of "U1" is ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1"); end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "IT" be ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Const "U1")); attr "IT" is :::"MSEquivalence-like"::: means :: MSUALG_4:def 3 (Bool "IT" "is" ($#v1_msualg_4 :::"MSEquivalence_Relation-like"::: ) ); end; :: deftheorem defines :::"MSEquivalence-like"::: MSUALG_4:def 3 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "IT")) "being" ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Var "U1")) "holds" (Bool "(" (Bool (Set (Var "IT")) "is" ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ) "iff" (Bool (Set (Var "IT")) "is" ($#v1_msualg_4 :::"MSEquivalence_Relation-like"::: ) ) ")" )))); registrationlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); cluster ($#~v1_xboole_0 "non" ($#v1_xboole_0 :::"empty"::: ) ) ($#v1_relat_1 :::"Relation-like"::: ) (Set "the" ($#u1_struct_0 :::"carrier"::: ) "of" "S") ($#v4_relat_1 :::"-defined"::: ) ($#v1_funct_1 :::"Function-like"::: ) ($#v1_partfun1 :::"total"::: ) ($#v2_funcop_1 :::"Relation-yielding"::: ) ($#v2_msualg_4 :::"MSEquivalence-like"::: ) for ($#m1_msualg_4 :::"ManySortedRelation"::: ) "of" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") "," (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1"); end; theorem :: MSUALG_4:1 (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Var "U1")) "holds" (Bool (Set (Set (Var "R")) ($#k1_msualg_4 :::"."::: ) (Set (Var "s"))) "is" ($#m1_subset_1 :::"Equivalence_Relation":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s")) ")" )))))) ; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Const "U1")); attr "R" is :::"MSCongruence-like"::: means :: MSUALG_4:def 4 (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" "S" (Bool "for" (Set (Var "x")) "," (Set (Var "y")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Var "o")) "," "U1" ")" ) "st" (Bool (Bool "(" "for" (Set (Var "n")) "being" ($#m1_hidden :::"Nat":::) "st" (Bool (Bool (Set (Var "n")) ($#r2_hidden :::"in"::: ) (Set ($#k9_xtuple_0 :::"dom"::: ) (Set (Var "x"))))) "holds" (Bool (Set ($#k4_tarski :::"["::: ) (Set "(" (Set (Var "x")) ($#k1_funct_1 :::"."::: ) (Set (Var "n")) ")" ) "," (Set "(" (Set (Var "y")) ($#k1_funct_1 :::"."::: ) (Set (Var "n")) ")" ) ($#k4_tarski :::"]"::: ) ) ($#r2_hidden :::"in"::: ) (Set "R" ($#k1_msualg_4 :::"."::: ) (Set "(" (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) (Set (Var "o")) ")" ) ($#k7_partfun1 :::"/."::: ) (Set (Var "n")) ")" ))) ")" )) "holds" (Bool (Set ($#k4_tarski :::"["::: ) (Set "(" (Set "(" ($#k5_msualg_1 :::"Den"::: ) "(" (Set (Var "o")) "," "U1" ")" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "x")) ")" ) "," (Set "(" (Set "(" ($#k5_msualg_1 :::"Den"::: ) "(" (Set (Var "o")) "," "U1" ")" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "y")) ")" ) ($#k4_tarski :::"]"::: ) ) ($#r2_hidden :::"in"::: ) (Set "R" ($#k1_msualg_4 :::"."::: ) (Set "(" ($#k2_msualg_1 :::"the_result_sort_of"::: ) (Set (Var "o")) ")" ))))); end; :: deftheorem defines :::"MSCongruence-like"::: MSUALG_4:def 4 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Var "U1")) "holds" (Bool "(" (Bool (Set (Var "R")) "is" ($#v3_msualg_4 :::"MSCongruence-like"::: ) ) "iff" (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "x")) "," (Set (Var "y")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Var "o")) "," (Set (Var "U1")) ")" ) "st" (Bool (Bool "(" "for" (Set (Var "n")) "being" ($#m1_hidden :::"Nat":::) "st" (Bool (Bool (Set (Var "n")) ($#r2_hidden :::"in"::: ) (Set ($#k9_xtuple_0 :::"dom"::: ) (Set (Var "x"))))) "holds" (Bool (Set ($#k4_tarski :::"["::: ) (Set "(" (Set (Var "x")) ($#k1_funct_1 :::"."::: ) (Set (Var "n")) ")" ) "," (Set "(" (Set (Var "y")) ($#k1_funct_1 :::"."::: ) (Set (Var "n")) ")" ) ($#k4_tarski :::"]"::: ) ) ($#r2_hidden :::"in"::: ) (Set (Set (Var "R")) ($#k1_msualg_4 :::"."::: ) (Set "(" (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) (Set (Var "o")) ")" ) ($#k7_partfun1 :::"/."::: ) (Set (Var "n")) ")" ))) ")" )) "holds" (Bool (Set ($#k4_tarski :::"["::: ) (Set "(" (Set "(" ($#k5_msualg_1 :::"Den"::: ) "(" (Set (Var "o")) "," (Set (Var "U1")) ")" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "x")) ")" ) "," (Set "(" (Set "(" ($#k5_msualg_1 :::"Den"::: ) "(" (Set (Var "o")) "," (Set (Var "U1")) ")" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "y")) ")" ) ($#k4_tarski :::"]"::: ) ) ($#r2_hidden :::"in"::: ) (Set (Set (Var "R")) ($#k1_msualg_4 :::"."::: ) (Set "(" ($#k2_msualg_1 :::"the_result_sort_of"::: ) (Set (Var "o")) ")" ))))) ")" )))); registrationlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); cluster ($#~v1_xboole_0 "non" ($#v1_xboole_0 :::"empty"::: ) ) ($#v1_relat_1 :::"Relation-like"::: ) (Set "the" ($#u1_struct_0 :::"carrier"::: ) "of" "S") ($#v4_relat_1 :::"-defined"::: ) ($#v1_funct_1 :::"Function-like"::: ) ($#v1_partfun1 :::"total"::: ) ($#v2_funcop_1 :::"Relation-yielding"::: ) ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#v3_msualg_4 :::"MSCongruence-like"::: ) for ($#m1_msualg_4 :::"ManySortedRelation"::: ) "of" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") "," (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1"); end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); mode MSCongruence of "U1" is ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#v3_msualg_4 :::"MSCongruence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" "U1"; end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Const "U1")); let "i" be ($#m1_subset_1 :::"Element":::) "of" (Set (Const "S")); :: original: :::"."::: redefine func "R" :::"."::: "i" -> ($#m1_subset_1 :::"Equivalence_Relation":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "i" ")" ); end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Const "U1")); let "i" be ($#m1_subset_1 :::"Element":::) "of" (Set (Const "S")); let "x" be ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Const "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Const "i"))); func :::"Class"::: "(" "R" "," "x" ")" -> ($#m1_subset_1 :::"Subset":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "i" ")" ) equals :: MSUALG_4:def 5 (Set ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" "R" ($#k2_msualg_4 :::"."::: ) "i" ")" ) "," "x" ")" ); end; :: deftheorem defines :::"Class"::: MSUALG_4:def 5 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#v2_msualg_4 :::"MSEquivalence-like"::: ) ($#m1_msualg_4 :::"ManySortedRelation":::) "of" (Set (Var "U1")) (Bool "for" (Set (Var "i")) "being" ($#m1_subset_1 :::"Element":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "i"))) "holds" (Bool (Set ($#k3_msualg_4 :::"Class"::: ) "(" (Set (Var "R")) "," (Set (Var "x")) ")" ) ($#r1_hidden :::"="::: ) (Set ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" (Set (Var "R")) ($#k2_msualg_4 :::"."::: ) (Set (Var "i")) ")" ) "," (Set (Var "x")) ")" ))))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "U1")); func :::"Class"::: "R" -> bbbadV2_RELAT_1() ($#m1_hidden :::"ManySortedSet":::) "of" (Set "the" ($#u1_struct_0 :::"carrier"::: ) "of" "S") means :: MSUALG_4:def 6 (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"Element":::) "of" "S" "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set (Var "s"))) ($#r1_hidden :::"="::: ) (Set ($#k8_eqrel_1 :::"Class"::: ) (Set "(" "R" ($#k2_msualg_4 :::"."::: ) (Set (Var "s")) ")" )))); end; :: deftheorem defines :::"Class"::: MSUALG_4:def 6 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "U1")) (Bool "for" (Set (Var "b4")) "being" bbbadV2_RELAT_1() ($#m1_hidden :::"ManySortedSet":::) "of" (Set "the" ($#u1_struct_0 :::"carrier"::: ) "of" (Set (Var "S"))) "holds" (Bool "(" (Bool (Set (Var "b4")) ($#r1_hidden :::"="::: ) (Set ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")))) "iff" (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"Element":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b4")) ($#k1_funct_1 :::"."::: ) (Set (Var "s"))) ($#r1_hidden :::"="::: ) (Set ($#k8_eqrel_1 :::"Class"::: ) (Set "(" (Set (Var "R")) ($#k2_msualg_4 :::"."::: ) (Set (Var "s")) ")" )))) ")" ))))); begin definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "M1", "M2" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set "the" ($#u4_struct_0 :::"carrier'"::: ) "of" (Set (Const "S"))); let "F" be ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Const "M1")) "," (Set (Const "M2")); let "o" be ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Const "S")); :: original: :::"."::: redefine func "F" :::"."::: "o" -> ($#m1_subset_1 :::"Function":::) "of" (Set "(" "M1" ($#k1_funct_1 :::"."::: ) "o" ")" ) "," (Set "(" "M2" ($#k1_funct_1 :::"."::: ) "o" ")" ); end; registrationlet "I" be ($#~v1_xboole_0 "non" ($#v1_xboole_0 :::"empty"::: ) ) ($#m1_hidden :::"set"::: ) ; let "p" be ($#m2_finseq_1 :::"FinSequence"::: ) "of" (Set (Const "I")); let "X" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); cluster (Set "p" ($#k3_relat_1 :::"*"::: ) "X") -> (Set ($#k4_finseq_1 :::"dom"::: ) "p") ($#v4_relat_1 :::"-defined"::: ) for ($#m1_hidden :::"Function":::); end; registrationlet "I" be ($#~v1_xboole_0 "non" ($#v1_xboole_0 :::"empty"::: ) ) ($#m1_hidden :::"set"::: ) ; let "p" be ($#m2_finseq_1 :::"FinSequence"::: ) "of" (Set (Const "I")); let "X" be ($#m1_hidden :::"ManySortedSet":::) "of" (Set (Const "I")); cluster (Set "p" ($#k3_relat_1 :::"*"::: ) "X") -> (Set ($#k4_finseq_1 :::"dom"::: ) "p") ($#v4_relat_1 :::"-defined"::: ) ($#v1_partfun1 :::"total"::: ) for(Set ($#k4_finseq_1 :::"dom"::: ) "p") ($#v4_relat_1 :::"-defined"::: ) ($#m1_hidden :::"Function":::); end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "o" be ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Const "S")); let "A" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "A")); let "x" be ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Const "o")) "," (Set (Const "A")) ")" ); func "R" :::"#"::: "x" -> ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k4_card_3 :::"product"::: ) (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k3_relat_1 :::"*"::: ) (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) "o" ")" ) ")" )) means :: MSUALG_4:def 7 (Bool "for" (Set (Var "n")) "being" ($#m1_hidden :::"Nat":::) "st" (Bool (Bool (Set (Var "n")) ($#r2_hidden :::"in"::: ) (Set ($#k4_finseq_1 :::"dom"::: ) (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) "o" ")" )))) "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set (Var "n"))) ($#r1_hidden :::"="::: ) (Set ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" "R" ($#k2_msualg_4 :::"."::: ) (Set "(" (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) "o" ")" ) ($#k7_partfun1 :::"/."::: ) (Set (Var "n")) ")" ) ")" ) "," (Set "(" "x" ($#k1_funct_1 :::"."::: ) (Set (Var "n")) ")" ) ")" ))); end; :: deftheorem defines :::"#"::: MSUALG_4:def 7 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Var "o")) "," (Set (Var "A")) ")" ) (Bool "for" (Set (Var "b6")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k4_card_3 :::"product"::: ) (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) (Set (Var "o")) ")" ) ")" )) "holds" (Bool "(" (Bool (Set (Var "b6")) ($#r1_hidden :::"="::: ) (Set (Set (Var "R")) ($#k6_msualg_4 :::"#"::: ) (Set (Var "x")))) "iff" (Bool "for" (Set (Var "n")) "being" ($#m1_hidden :::"Nat":::) "st" (Bool (Bool (Set (Var "n")) ($#r2_hidden :::"in"::: ) (Set ($#k4_finseq_1 :::"dom"::: ) (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) (Set (Var "o")) ")" )))) "holds" (Bool (Set (Set (Var "b6")) ($#k1_funct_1 :::"."::: ) (Set (Var "n"))) ($#r1_hidden :::"="::: ) (Set ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" (Set (Var "R")) ($#k2_msualg_4 :::"."::: ) (Set "(" (Set "(" ($#k1_msualg_1 :::"the_arity_of"::: ) (Set (Var "o")) ")" ) ($#k7_partfun1 :::"/."::: ) (Set (Var "n")) ")" ) ")" ) "," (Set "(" (Set (Var "x")) ($#k1_funct_1 :::"."::: ) (Set (Var "n")) ")" ) ")" ))) ")" ))))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "o" be ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Const "S")); let "A" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "A")); func :::"QuotRes"::: "(" "R" "," "o" ")" -> ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "A") ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o" ")" ) "," (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o" ")" ) means :: MSUALG_4:def 8 (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "A") ($#k1_funct_1 :::"."::: ) (Set "(" ($#k2_msualg_1 :::"the_result_sort_of"::: ) "o" ")" )) "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set ($#k3_msualg_4 :::"Class"::: ) "(" "R" "," (Set (Var "x")) ")" ))); func :::"QuotArgs"::: "(" "R" "," "o" ")" -> ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "(" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "A") ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o" ")" ) "," (Set "(" (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o" ")" ) means :: MSUALG_4:def 9 (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" "o" "," "A" ")" ) "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set "R" ($#k6_msualg_4 :::"#"::: ) (Set (Var "x"))))); end; :: deftheorem defines :::"QuotRes"::: MSUALG_4:def 8 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "b5")) "being" ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "A"))) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o")) ")" ) "," (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o")) ")" ) "holds" (Bool "(" (Bool (Set (Var "b5")) ($#r1_hidden :::"="::: ) (Set ($#k7_msualg_4 :::"QuotRes"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" )) "iff" (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "A"))) ($#k1_funct_1 :::"."::: ) (Set "(" ($#k2_msualg_1 :::"the_result_sort_of"::: ) (Set (Var "o")) ")" )) "holds" (Bool (Set (Set (Var "b5")) ($#k1_funct_1 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set ($#k3_msualg_4 :::"Class"::: ) "(" (Set (Var "R")) "," (Set (Var "x")) ")" ))) ")" )))))); :: deftheorem defines :::"QuotArgs"::: MSUALG_4:def 9 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "b5")) "being" ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "(" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "A"))) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o")) ")" ) "," (Set "(" (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o")) ")" ) "holds" (Bool "(" (Bool (Set (Var "b5")) ($#r1_hidden :::"="::: ) (Set ($#k8_msualg_4 :::"QuotArgs"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" )) "iff" (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Var "o")) "," (Set (Var "A")) ")" ) "holds" (Bool (Set (Set (Var "b5")) ($#k1_funct_1 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set (Set (Var "R")) ($#k6_msualg_4 :::"#"::: ) (Set (Var "x"))))) ")" )))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "A" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "A")); func :::"QuotRes"::: "R" -> ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "A") ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" "S")) "," (Set (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" "S")) means :: MSUALG_4:def 10 (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" "S" "holds" (Bool (Set it ($#k5_msualg_4 :::"."::: ) (Set (Var "o"))) ($#r2_funct_2 :::"="::: ) (Set ($#k7_msualg_4 :::"QuotRes"::: ) "(" "R" "," (Set (Var "o")) ")" ))); func :::"QuotArgs"::: "R" -> ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "A") ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S")) "," (Set (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S")) means :: MSUALG_4:def 11 (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" "S" "holds" (Bool (Set it ($#k5_msualg_4 :::"."::: ) (Set (Var "o"))) ($#r2_funct_2 :::"="::: ) (Set ($#k8_msualg_4 :::"QuotArgs"::: ) "(" "R" "," (Set (Var "o")) ")" ))); end; :: deftheorem defines :::"QuotRes"::: MSUALG_4:def 10 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "b4")) "being" ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "A"))) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" (Set (Var "S")))) "," (Set (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" (Set (Var "S")))) "holds" (Bool "(" (Bool (Set (Var "b4")) ($#r1_hidden :::"="::: ) (Set ($#k9_msualg_4 :::"QuotRes"::: ) (Set (Var "R")))) "iff" (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b4")) ($#k5_msualg_4 :::"."::: ) (Set (Var "o"))) ($#r2_funct_2 :::"="::: ) (Set ($#k7_msualg_4 :::"QuotRes"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" ))) ")" ))))); :: deftheorem defines :::"QuotArgs"::: MSUALG_4:def 11 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "b4")) "being" ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "A"))) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S")))) "," (Set (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S")))) "holds" (Bool "(" (Bool (Set (Var "b4")) ($#r1_hidden :::"="::: ) (Set ($#k10_msualg_4 :::"QuotArgs"::: ) (Set (Var "R")))) "iff" (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b4")) ($#k5_msualg_4 :::"."::: ) (Set (Var "o"))) ($#r2_funct_2 :::"="::: ) (Set ($#k8_msualg_4 :::"QuotArgs"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" ))) ")" ))))); theorem :: MSUALG_4:2 (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "x")) "being" ($#m1_hidden :::"set"::: ) "st" (Bool (Bool (Set (Var "x")) ($#r2_hidden :::"in"::: ) (Set (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o"))))) "holds" (Bool "ex" (Set (Var "a")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Var "o")) "," (Set (Var "A")) ")" ) "st" (Bool (Set (Var "x")) ($#r1_hidden :::"="::: ) (Set (Set (Var "R")) ($#k6_msualg_4 :::"#"::: ) (Set (Var "a")))))))))) ; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "o" be ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Const "S")); let "A" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "A")); func :::"QuotCharact"::: "(" "R" "," "o" ")" -> ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o" ")" ) "," (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o" ")" ) means :: MSUALG_4:def 12 (Bool "for" (Set (Var "a")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" "o" "," "A" ")" ) "st" (Bool (Bool (Set "R" ($#k6_msualg_4 :::"#"::: ) (Set (Var "a"))) ($#r2_hidden :::"in"::: ) (Set (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S") ")" ) ($#k1_funct_1 :::"."::: ) "o"))) "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set "(" "R" ($#k6_msualg_4 :::"#"::: ) (Set (Var "a")) ")" )) ($#r1_hidden :::"="::: ) (Set (Set "(" (Set "(" ($#k7_msualg_4 :::"QuotRes"::: ) "(" "R" "," "o" ")" ")" ) ($#k1_partfun1 :::"*"::: ) (Set "(" ($#k5_msualg_1 :::"Den"::: ) "(" "o" "," "A" ")" ")" ) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "a"))))); end; :: deftheorem defines :::"QuotCharact"::: MSUALG_4:def 12 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "b5")) "being" ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o")) ")" ) "," (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o")) ")" ) "holds" (Bool "(" (Bool (Set (Var "b5")) ($#r1_hidden :::"="::: ) (Set ($#k11_msualg_4 :::"QuotCharact"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" )) "iff" (Bool "for" (Set (Var "a")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set ($#k3_msualg_1 :::"Args"::: ) "(" (Set (Var "o")) "," (Set (Var "A")) ")" ) "st" (Bool (Bool (Set (Set (Var "R")) ($#k6_msualg_4 :::"#"::: ) (Set (Var "a"))) ($#r2_hidden :::"in"::: ) (Set (Set "(" (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S"))) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "o"))))) "holds" (Bool (Set (Set (Var "b5")) ($#k1_funct_1 :::"."::: ) (Set "(" (Set (Var "R")) ($#k6_msualg_4 :::"#"::: ) (Set (Var "a")) ")" )) ($#r1_hidden :::"="::: ) (Set (Set "(" (Set "(" ($#k7_msualg_4 :::"QuotRes"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" ")" ) ($#k1_partfun1 :::"*"::: ) (Set "(" ($#k5_msualg_1 :::"Den"::: ) "(" (Set (Var "o")) "," (Set (Var "A")) ")" ")" ) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "a"))))) ")" )))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "A" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "A")); func :::"QuotCharact"::: "R" -> ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" "S")) "," (Set (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" "S")) means :: MSUALG_4:def 13 (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" "S" "holds" (Bool (Set it ($#k5_msualg_4 :::"."::: ) (Set (Var "o"))) ($#r2_funct_2 :::"="::: ) (Set ($#k11_msualg_4 :::"QuotCharact"::: ) "(" "R" "," (Set (Var "o")) ")" ))); end; :: deftheorem defines :::"QuotCharact"::: MSUALG_4:def 13 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "A")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "A")) (Bool "for" (Set (Var "b4")) "being" ($#m2_pboole :::"ManySortedFunction"::: ) "of" (Set (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k6_finseq_2 :::"#"::: ) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u1_msualg_1 :::"Arity"::: ) "of" (Set (Var "S")))) "," (Set (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k3_relat_1 :::"*"::: ) (Set "the" ($#u2_msualg_1 :::"ResultSort"::: ) "of" (Set (Var "S")))) "holds" (Bool "(" (Bool (Set (Var "b4")) ($#r1_hidden :::"="::: ) (Set ($#k12_msualg_4 :::"QuotCharact"::: ) (Set (Var "R")))) "iff" (Bool "for" (Set (Var "o")) "being" ($#m1_subset_1 :::"OperSymbol":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b4")) ($#k5_msualg_4 :::"."::: ) (Set (Var "o"))) ($#r2_funct_2 :::"="::: ) (Set ($#k11_msualg_4 :::"QuotCharact"::: ) "(" (Set (Var "R")) "," (Set (Var "o")) ")" ))) ")" ))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "U1")); func :::"QuotMSAlg"::: "(" "U1" "," "R" ")" -> ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" "S" equals :: MSUALG_4:def 14 (Set ($#g3_msualg_1 :::"MSAlgebra"::: ) "(#" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) "," (Set "(" ($#k12_msualg_4 :::"QuotCharact"::: ) "R" ")" ) "#)" ); end; :: deftheorem defines :::"QuotMSAlg"::: MSUALG_4:def 14 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "U1")) "holds" (Bool (Set ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) ")" ) ($#r1_hidden :::"="::: ) (Set ($#g3_msualg_1 :::"MSAlgebra"::: ) "(#" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) "," (Set "(" ($#k12_msualg_4 :::"QuotCharact"::: ) (Set (Var "R")) ")" ) "#)" ))))); registrationlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "U1")); cluster (Set ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" "U1" "," "R" ")" ) -> ($#v3_msualg_1 :::"strict"::: ) ($#v4_msualg_1 :::"non-empty"::: ) ; end; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "U1")); let "s" be ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Const "S")); func :::"MSNat_Hom"::: "(" "U1" "," "R" "," "s" ")" -> ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "s" ")" ) "," (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) "R" ")" ) ($#k1_funct_1 :::"."::: ) "s" ")" ) means :: MSUALG_4:def 15 (Bool "for" (Set (Var "x")) "being" ($#m1_hidden :::"set"::: ) "st" (Bool (Bool (Set (Var "x")) ($#r2_hidden :::"in"::: ) (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "s"))) "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" "R" ($#k2_msualg_4 :::"."::: ) "s" ")" ) "," (Set (Var "x")) ")" ))); end; :: deftheorem defines :::"MSNat_Hom"::: MSUALG_4:def 15 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "U1")) (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "b5")) "being" ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s")) ")" ) "," (Set "(" (Set "(" ($#k4_msualg_4 :::"Class"::: ) (Set (Var "R")) ")" ) ($#k1_funct_1 :::"."::: ) (Set (Var "s")) ")" ) "holds" (Bool "(" (Bool (Set (Var "b5")) ($#r1_hidden :::"="::: ) (Set ($#k14_msualg_4 :::"MSNat_Hom"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) "," (Set (Var "s")) ")" )) "iff" (Bool "for" (Set (Var "x")) "being" ($#m1_hidden :::"set"::: ) "st" (Bool (Bool (Set (Var "x")) ($#r2_hidden :::"in"::: ) (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s"))))) "holds" (Bool (Set (Set (Var "b5")) ($#k1_funct_1 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" (Set (Var "R")) ($#k2_msualg_4 :::"."::: ) (Set (Var "s")) ")" ) "," (Set (Var "x")) ")" ))) ")" )))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "R" be ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Const "U1")); func :::"MSNat_Hom"::: "(" "U1" "," "R" ")" -> ($#m2_pboole :::"ManySortedFunction":::) "of" "U1" "," (Set "(" ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" "U1" "," "R" ")" ")" ) means :: MSUALG_4:def 16 (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" "S" "holds" (Bool (Set it ($#k1_msualg_3 :::"."::: ) (Set (Var "s"))) ($#r1_funct_2 :::"="::: ) (Set ($#k14_msualg_4 :::"MSNat_Hom"::: ) "(" "U1" "," "R" "," (Set (Var "s")) ")" ))); end; :: deftheorem defines :::"MSNat_Hom"::: MSUALG_4:def 16 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "U1")) (Bool "for" (Set (Var "b4")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set "(" ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) ")" ")" ) "holds" (Bool "(" (Bool (Set (Var "b4")) ($#r1_hidden :::"="::: ) (Set ($#k15_msualg_4 :::"MSNat_Hom"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) ")" )) "iff" (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b4")) ($#k1_msualg_3 :::"."::: ) (Set (Var "s"))) ($#r1_funct_2 :::"="::: ) (Set ($#k14_msualg_4 :::"MSNat_Hom"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) "," (Set (Var "s")) ")" ))) ")" ))))); theorem :: MSUALG_4:3 (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "R")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "U1")) "holds" (Bool (Set ($#k15_msualg_4 :::"MSNat_Hom"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) ")" ) ($#r2_msualg_3 :::"is_epimorphism"::: ) (Set (Var "U1")) "," (Set ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set (Var "R")) ")" ))))) ; definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1", "U2" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "F" be ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Const "U1")) "," (Set (Const "U2")); let "s" be ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Const "S")); func :::"MSCng"::: "(" "F" "," "s" ")" -> ($#m1_subset_1 :::"Equivalence_Relation":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "s" ")" ) means :: MSUALG_4:def 17 (Bool "for" (Set (Var "x")) "," (Set (Var "y")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "s") "holds" (Bool "(" (Bool (Set ($#k4_tarski :::"["::: ) (Set (Var "x")) "," (Set (Var "y")) ($#k4_tarski :::"]"::: ) ) ($#r2_hidden :::"in"::: ) it) "iff" (Bool (Set (Set "(" "F" ($#k1_msualg_3 :::"."::: ) "s" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set (Set "(" "F" ($#k1_msualg_3 :::"."::: ) "s" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "y")))) ")" )); end; :: deftheorem defines :::"MSCng"::: MSUALG_4:def 17 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) (Bool "for" (Set (Var "b6")) "being" ($#m1_subset_1 :::"Equivalence_Relation":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s")) ")" ) "holds" (Bool "(" (Bool (Set (Var "b6")) ($#r1_hidden :::"="::: ) (Set ($#k16_msualg_4 :::"MSCng"::: ) "(" (Set (Var "F")) "," (Set (Var "s")) ")" )) "iff" (Bool "for" (Set (Var "x")) "," (Set (Var "y")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s"))) "holds" (Bool "(" (Bool (Set ($#k4_tarski :::"["::: ) (Set (Var "x")) "," (Set (Var "y")) ($#k4_tarski :::"]"::: ) ) ($#r2_hidden :::"in"::: ) (Set (Var "b6"))) "iff" (Bool (Set (Set "(" (Set (Var "F")) ($#k1_msualg_3 :::"."::: ) (Set (Var "s")) ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "x"))) ($#r1_hidden :::"="::: ) (Set (Set "(" (Set (Var "F")) ($#k1_msualg_3 :::"."::: ) (Set (Var "s")) ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "y")))) ")" )) ")" )))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1", "U2" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "F" be ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Const "U1")) "," (Set (Const "U2")); assume (Bool (Set (Const "F")) ($#r1_msualg_3 :::"is_homomorphism"::: ) (Set (Const "U1")) "," (Set (Const "U2"))) ; func :::"MSCng"::: "F" -> ($#m1_msualg_4 :::"MSCongruence":::) "of" "U1" means :: MSUALG_4:def 18 (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" "S" "holds" (Bool (Set it ($#k2_msualg_4 :::"."::: ) (Set (Var "s"))) ($#r2_relset_1 :::"="::: ) (Set ($#k16_msualg_4 :::"MSCng"::: ) "(" "F" "," (Set (Var "s")) ")" ))); end; :: deftheorem defines :::"MSCng"::: MSUALG_4:def 18 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) "st" (Bool (Bool (Set (Var "F")) ($#r1_msualg_3 :::"is_homomorphism"::: ) (Set (Var "U1")) "," (Set (Var "U2")))) "holds" (Bool "for" (Set (Var "b5")) "being" ($#m1_msualg_4 :::"MSCongruence":::) "of" (Set (Var "U1")) "holds" (Bool "(" (Bool (Set (Var "b5")) ($#r1_hidden :::"="::: ) (Set ($#k17_msualg_4 :::"MSCng"::: ) (Set (Var "F")))) "iff" (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b5")) ($#k2_msualg_4 :::"."::: ) (Set (Var "s"))) ($#r2_relset_1 :::"="::: ) (Set ($#k16_msualg_4 :::"MSCng"::: ) "(" (Set (Var "F")) "," (Set (Var "s")) ")" ))) ")" ))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1", "U2" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "F" be ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Const "U1")) "," (Set (Const "U2")); let "s" be ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Const "S")); assume (Bool (Set (Const "F")) ($#r1_msualg_3 :::"is_homomorphism"::: ) (Set (Const "U1")) "," (Set (Const "U2"))) ; func :::"MSHomQuot"::: "(" "F" "," "s" ")" -> ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set "(" ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" "U1" "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) "F" ")" ) ")" ")" )) ($#k1_funct_1 :::"."::: ) "s" ")" ) "," (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U2") ($#k1_funct_1 :::"."::: ) "s" ")" ) means :: MSUALG_4:def 19 (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" "U1") ($#k1_funct_1 :::"."::: ) "s") "holds" (Bool (Set it ($#k1_funct_1 :::"."::: ) (Set "(" ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" ($#k16_msualg_4 :::"MSCng"::: ) "(" "F" "," "s" ")" ")" ) "," (Set (Var "x")) ")" ")" )) ($#r1_hidden :::"="::: ) (Set (Set "(" "F" ($#k1_msualg_3 :::"."::: ) "s" ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "x"))))); end; :: deftheorem defines :::"MSHomQuot"::: MSUALG_4:def 19 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) "st" (Bool (Bool (Set (Var "F")) ($#r1_msualg_3 :::"is_homomorphism"::: ) (Set (Var "U1")) "," (Set (Var "U2")))) "holds" (Bool "for" (Set (Var "b6")) "being" ($#m1_subset_1 :::"Function":::) "of" (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set "(" ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) (Set (Var "F")) ")" ) ")" ")" )) ($#k1_funct_1 :::"."::: ) (Set (Var "s")) ")" ) "," (Set "(" (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U2"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s")) ")" ) "holds" (Bool "(" (Bool (Set (Var "b6")) ($#r1_hidden :::"="::: ) (Set ($#k18_msualg_4 :::"MSHomQuot"::: ) "(" (Set (Var "F")) "," (Set (Var "s")) ")" )) "iff" (Bool "for" (Set (Var "x")) "being" ($#m1_subset_1 :::"Element"::: ) "of" (Set (Set "the" ($#u3_msualg_1 :::"Sorts"::: ) "of" (Set (Var "U1"))) ($#k1_funct_1 :::"."::: ) (Set (Var "s"))) "holds" (Bool (Set (Set (Var "b6")) ($#k1_funct_1 :::"."::: ) (Set "(" ($#k6_eqrel_1 :::"Class"::: ) "(" (Set "(" ($#k16_msualg_4 :::"MSCng"::: ) "(" (Set (Var "F")) "," (Set (Var "s")) ")" ")" ) "," (Set (Var "x")) ")" ")" )) ($#r1_hidden :::"="::: ) (Set (Set "(" (Set (Var "F")) ($#k1_msualg_3 :::"."::: ) (Set (Var "s")) ")" ) ($#k3_funct_2 :::"."::: ) (Set (Var "x"))))) ")" )))))); definitionlet "S" be ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) ; let "U1", "U2" be ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Const "S")); let "F" be ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Const "U1")) "," (Set (Const "U2")); func :::"MSHomQuot"::: "F" -> ($#m2_pboole :::"ManySortedFunction":::) "of" (Set "(" ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" "U1" "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) "F" ")" ) ")" ")" ) "," "U2" means :: MSUALG_4:def 20 (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" "S" "holds" (Bool (Set it ($#k1_msualg_3 :::"."::: ) (Set (Var "s"))) ($#r2_funct_2 :::"="::: ) (Set ($#k18_msualg_4 :::"MSHomQuot"::: ) "(" "F" "," (Set (Var "s")) ")" ))); end; :: deftheorem defines :::"MSHomQuot"::: MSUALG_4:def 20 : (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) (Bool "for" (Set (Var "b5")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set "(" ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) (Set (Var "F")) ")" ) ")" ")" ) "," (Set (Var "U2")) "holds" (Bool "(" (Bool (Set (Var "b5")) ($#r1_hidden :::"="::: ) (Set ($#k19_msualg_4 :::"MSHomQuot"::: ) (Set (Var "F")))) "iff" (Bool "for" (Set (Var "s")) "being" ($#m1_subset_1 :::"SortSymbol":::) "of" (Set (Var "S")) "holds" (Bool (Set (Set (Var "b5")) ($#k1_msualg_3 :::"."::: ) (Set (Var "s"))) ($#r2_funct_2 :::"="::: ) (Set ($#k18_msualg_4 :::"MSHomQuot"::: ) "(" (Set (Var "F")) "," (Set (Var "s")) ")" ))) ")" ))))); theorem :: MSUALG_4:4 (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) "st" (Bool (Bool (Set (Var "F")) ($#r1_msualg_3 :::"is_homomorphism"::: ) (Set (Var "U1")) "," (Set (Var "U2")))) "holds" (Bool (Set ($#k19_msualg_4 :::"MSHomQuot"::: ) (Set (Var "F"))) ($#r3_msualg_3 :::"is_monomorphism"::: ) (Set ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) (Set (Var "F")) ")" ) ")" ) "," (Set (Var "U2")))))) ; theorem :: MSUALG_4:5 (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) "st" (Bool (Bool (Set (Var "F")) ($#r2_msualg_3 :::"is_epimorphism"::: ) (Set (Var "U1")) "," (Set (Var "U2")))) "holds" (Bool (Set ($#k19_msualg_4 :::"MSHomQuot"::: ) (Set (Var "F"))) ($#r4_msualg_3 :::"is_isomorphism"::: ) (Set ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) (Set (Var "F")) ")" ) ")" ) "," (Set (Var "U2")))))) ; theorem :: MSUALG_4:6 (Bool "for" (Set (Var "S")) "being" ($#~v2_struct_0 "non" ($#v2_struct_0 :::"empty"::: ) ) ($#~v11_struct_0 "non" ($#v11_struct_0 :::"void"::: ) ) ($#l1_msualg_1 :::"ManySortedSign"::: ) (Bool "for" (Set (Var "U1")) "," (Set (Var "U2")) "being" ($#v4_msualg_1 :::"non-empty"::: ) ($#l3_msualg_1 :::"MSAlgebra"::: ) "over" (Set (Var "S")) (Bool "for" (Set (Var "F")) "being" ($#m2_pboole :::"ManySortedFunction":::) "of" (Set (Var "U1")) "," (Set (Var "U2")) "st" (Bool (Bool (Set (Var "F")) ($#r2_msualg_3 :::"is_epimorphism"::: ) (Set (Var "U1")) "," (Set (Var "U2")))) "holds" (Bool (Set ($#k13_msualg_4 :::"QuotMSAlg"::: ) "(" (Set (Var "U1")) "," (Set "(" ($#k17_msualg_4 :::"MSCng"::: ) (Set (Var "F")) ")" ) ")" ) "," (Set (Var "U2")) ($#r6_msualg_3 :::"are_isomorphic"::: ) )))) ;