Journal of Formalized Mathematics
Volume 8, 1996
University of Bialystok
Copyright (c) 1996 Association of Mizar Users

The abstract of the Mizar article:

Lattice of Congruences in Many Sorted Algebra

by
Robert Milewski

Received January 11, 1996

MML identifier: MSUALG_5
[ Mizar article, MML identifier index ]


environ

 vocabulary PBOOLE, RELAT_1, EQREL_1, LATTICES, BOOLE, FUNCT_1, BINOP_1,
      MSUALG_4, CARD_3, MSUALG_1, AMI_1, ZF_REFLE, FINSEQ_1, QC_LANG1, TDGROUP,
      RELAT_2, ARYTM_1, NAT_LAT, PRALG_2, MSUALG_5, FINSEQ_4;
 notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, XREAL_0, RELAT_1, RELAT_2,
      FUNCT_1, STRUCT_0, PARTFUN1, FUNCT_2, RELSET_1, EQREL_1, BINOP_1, PBOOLE,
      MSUALG_1, MSUALG_3, MSUALG_4, LATTICES, NAT_LAT, CARD_3, PRALG_2,
      FINSEQ_1, FINSEQ_4, REAL_1, NAT_1;
 constructors BINOP_1, MSUALG_3, MSUALG_4, NAT_LAT, REAL_1, NAT_1, FINSEQ_4,
      MEMBERED, EQREL_1;
 clusters SUBSET_1, STRUCT_0, MSUALG_1, LATTICES, NAT_LAT, RELSET_1, MSUALG_4,
      MSUALG_3, PRALG_1, PBOOLE, FINSEQ_1, NAT_1, EQREL_1, PARTFUN1;
 requirements NUMERALS, REAL, BOOLE, SUBSET;


begin
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     ::                MORE  OF  EQUIVALENCE  RELATIONS               ::
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  reserve I,X,x,y,z,d,i for set;
  reserve M for ManySortedSet of I;
  reserve R1 for Relation of X;
  reserve EqR1,EqR2,EqR3,EqR4 for Equivalence_Relation of X;

  theorem :: MSUALG_5:1
   (EqR1 "\/" EqR2) "\/" EqR3 = EqR1 "\/" (EqR2 "\/" EqR3);

  definition
   let X be set, R be Relation of X;
   func EqCl R -> Equivalence_Relation of X means
:: MSUALG_5:def 1
     R c= it & for EqR2 be Equivalence_Relation of X st R c= EqR2 holds
      it c= EqR2;
  end;

  theorem :: MSUALG_5:2
   EqR1 "\/" EqR2 = EqCl (EqR1 \/ EqR2);

   theorem :: MSUALG_5:3
    EqCl EqR1 = EqR1;

   theorem :: MSUALG_5:4
    nabla X \/ R1 = nabla X;

begin
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     ::               LATTICE  OF  EQUIVALENCE  RELATIONS             ::
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  definition
   let X be set;
   func EqRelLatt X -> strict Lattice means
:: MSUALG_5:def 2
      the carrier of it = {x where x is Relation of X,X :
                         x is Equivalence_Relation of X} &
    for x,y being Equivalence_Relation of X holds
     (the L_meet of it).(x,y) = x /\ y &
     (the L_join of it).(x,y) = x "\/" y;
  end;

begin
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     ::              MANY  SORTED  EQUIVALENCE  RELATIONS             ::
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  definition
   let I,M;
   cluster MSEquivalence_Relation-like ManySortedRelation of M;
  end;

  definition
   let I,M;
   mode Equivalence_Relation of M is
       MSEquivalence_Relation-like ManySortedRelation of M;
  end;

  reserve I for non empty set;
  reserve M for ManySortedSet of I;
  reserve EqR,EqR1,EqR2,EqR3,EqR4 for Equivalence_Relation of M;

  definition
   let I be non empty set;
   let M be ManySortedSet of I, R be ManySortedRelation of M;
   func EqCl R -> Equivalence_Relation of M means
:: MSUALG_5:def 3
     for i being Element of I holds it.i = EqCl(R.i);
  end;

  theorem :: MSUALG_5:5
     EqCl EqR = EqR;

begin
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     ::       LATTICE  OF  MANY  SORTED  EQUIVALENCE  RELATIONS       ::
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  definition
   let I be non empty set,
       M be ManySortedSet of I;
   let EqR1,EqR2 be Equivalence_Relation of M;
   func EqR1 "\/" EqR2 -> Equivalence_Relation of M means
:: MSUALG_5:def 4
     ex EqR3 being ManySortedRelation of M st EqR3 = EqR1 \/ EqR2 &
      it = EqCl EqR3;
   commutativity;
  end;

  theorem :: MSUALG_5:6
   EqR1 \/ EqR2 c= EqR1 "\/" EqR2;

  theorem :: MSUALG_5:7
   for EqR be Equivalence_Relation of M st
    EqR1 \/ EqR2 c= EqR holds EqR1 "\/" EqR2 c= EqR;

  theorem :: MSUALG_5:8
   ( EqR1 \/ EqR2 c= EqR3 & for EqR be Equivalence_Relation of M st
       EqR1 \/ EqR2 c= EqR holds EqR3 c= EqR ) implies
        EqR3 = EqR1 "\/" EqR2;

  theorem :: MSUALG_5:9
     EqR "\/" EqR = EqR;

  theorem :: MSUALG_5:10
   (EqR1 "\/" EqR2) "\/" EqR3 = EqR1 "\/" (EqR2 "\/" EqR3);

  theorem :: MSUALG_5:11
   EqR1 /\ (EqR1 "\/" EqR2) = EqR1;

  theorem :: MSUALG_5:12
   for EqR be Equivalence_Relation of M st EqR = EqR1 /\ EqR2 holds
    EqR1 "\/" EqR = EqR1;

  theorem :: MSUALG_5:13
   for EqR1,EqR2 be Equivalence_Relation of M holds
                                     EqR1 /\ EqR2 is Equivalence_Relation of M;

  definition
   let I be non empty set;
   let M be ManySortedSet of I;
   func EqRelLatt M -> strict Lattice means
:: MSUALG_5:def 5
     (for x being set holds x in the carrier of it
     iff x is Equivalence_Relation of M) &
    for x,y being Equivalence_Relation of M holds
     (the L_meet of it).(x,y) = x /\ y &
     (the L_join of it).(x,y) = x "\/" y;
  end;

begin
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     ::    LATTICE  OF  CONGRUENCES  IN  A  MANY  SORTED  ALGEBRA     ::
     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  definition
   let S be non empty ManySortedSign;
   let A be MSAlgebra over S;
   cluster MSEquivalence-like ->
          MSEquivalence_Relation-like ManySortedRelation of A;
  end;

  reserve S for non void non empty ManySortedSign;
  reserve A for non-empty MSAlgebra over S;

  theorem :: MSUALG_5:14
   for o be OperSymbol of S
   for C1,C2 being MSCongruence of A
   for x1,y1 be set
   for a1,b1 be FinSequence holds
    [x1,y1] in C1.((the_arity_of o)/.(len a1 + 1)) \/
                             C2.((the_arity_of o)/.(len a1 + 1)) implies
     for x,y be Element of Args(o,A) st x = (a1 ^ <*x1*> ^ b1) &
      y = (a1 ^ <*y1*> ^ b1) holds
       [Den(o,A).x,Den(o,A).y] in
       C1.(the_result_sort_of o) \/ C2.(the_result_sort_of o);

  theorem :: MSUALG_5:15
   for o be OperSymbol of S
   for C1,C2 being MSCongruence of A
   for C being MSEquivalence-like ManySortedRelation of A st C = C1 "\/" C2
   for x1,y1 be set
   for n be Nat
   for a1,a2,b1 being FinSequence st len a1 = n & len a1 = len a2 &
    for k be Nat st k in dom a1 holds [a1.k,a2.k] in
 C.((the_arity_of o)/.k) holds
    ( [Den(o,A).(a1 ^ <*x1*> ^ b1),Den(o,A).(a2 ^ <*x1*> ^ b1)] in
    C.(the_result_sort_of o) & [x1,y1] in C.((the_arity_of o)/.(n+1)) implies
     for x be Element of Args(o,A) st x = a1 ^ <*x1*> ^ b1 holds
      [Den(o,A).x,Den(o,A).(a2 ^ <*y1*> ^ b1)] in C.(the_result_sort_of o));

  theorem :: MSUALG_5:16
   for o be OperSymbol of S
   for C1,C2 being MSCongruence of A
   for C being MSEquivalence-like ManySortedRelation of A st C = C1 "\/" C2
   for x,y be Element of Args(o,A) holds
    (( for n be Nat st n in dom x holds [x.n,y.n] in C.((the_arity_of o)/.n))
     implies
    [Den(o,A).x,Den(o,A).y] in C.(the_result_sort_of o));

  theorem :: MSUALG_5:17
   for C1,C2 being MSCongruence of A holds C1 "\/" C2 is MSCongruence of A;

  theorem :: MSUALG_5:18
   for C1,C2 being MSCongruence of A holds C1 /\ C2 is MSCongruence of A;

  definition
   let S;
   let A be non-empty MSAlgebra over S;
   func CongrLatt A -> strict SubLattice of EqRelLatt the Sorts of A means
:: MSUALG_5:def 6
     for x being set holds x in the carrier of it iff
      x is MSCongruence of A;
  end;

  theorem :: MSUALG_5:19
   id (the Sorts of A) is MSCongruence of A;

  theorem :: MSUALG_5:20
   [|the Sorts of A,the Sorts of A|] is MSCongruence of A;

  definition
   let S, A;
   cluster CongrLatt A -> bounded;
  end;

  theorem :: MSUALG_5:21
     Bottom CongrLatt A = id (the Sorts of A);

  theorem :: MSUALG_5:22
     Top CongrLatt A = [|the Sorts of A,the Sorts of A|];


Back to top