reserve i,j for Nat;
reserve x,y for set;
reserve A for non empty set;
reserve c for Element of StandardStackSystem A;
reserve m for stack of StandardStackSystem A;
reserve X for non empty non void StackSystem;
reserve s,s1,s2 for stack of X;
reserve e,e1,e2 for Element of X;
reserve X for StackAlgebra;
reserve s,s1,s2,s3 for stack of X;
reserve e,e1,e2,e3 for Element of X;

theorem Th31:
  s1 in coset s implies core s1 = core s
  proof assume
A1: s1 in coset s;
    set R = ConstructionRed X;
    defpred P[stack of X] means core $1 = core s;
A2: P[s];
    coset s = {s2: R reduces s,s2} by Th25; then
    ex s2 st s1 = s2 & R reduces s,s2 by A1; then
A3: R reduces s,s1;
A4: now let x,y be stack of X; assume
A5:   R reduces s,x & [x,y] in R & P[x]; then
      not emp x & y = pop x or ex e st y = push(e,x) by Def18;
      hence P[y] by A5,Th27,Th28;
    end;
    thus P[s1] from PathIND(A2,A3,A4);
  end;
