reserve x for object;
reserve D for set;
reserve p for PartialPredicate of D;
reserve D for non empty set;
reserve p,q,r for PartialPredicate of D;

theorem Th49:
  PP_or(p,PP_not(p)) = PP_True(D) | dom p
  proof
    set n = PP_not(p);
    set a = PP_or(p,n);
    set T = PP_True(D);
    set t = T | dom p;
A1: dom n = dom p by Def2;
A2: dom a = {d where d is Element of D:
    d in dom p & p.d = TRUE or d in dom n & n.d = TRUE
    or d in dom p & p.d = FALSE & d in dom n & n.d = FALSE} by Def4;
    dom T = D;
    then
A3: dom t = dom p by RELAT_1:62;
    thus
A4: dom a = dom t
    proof
      thus dom a c= dom t by A1,A3,Th8;
      let x;
      assume
A5:   x in dom t;
      then per cases by A3,Th3;
      suppose p.x = TRUE;
        hence thesis by A2,A3,A5;
      end;
      suppose p.x = FALSE;
        then n.x = TRUE by A5,A3,Def2;
        hence thesis by A1,A2,A3,A5;
      end;
    end;
    let x;
    assume
A6: x in dom a;
    then
A7: TRUE = T.x by FUNCOP_1:7
    .= t.x by A3,A4,A6,FUNCT_1:49;
    per cases by A3,A4,A6,Th3;
    suppose p.x = TRUE;
      hence thesis by A3,A4,A6,A7,Def4;
    end;
    suppose p.x = FALSE;
      then n.x = TRUE by A3,A4,A6,Def2;
      hence thesis by A1,A3,A4,A6,A7,Def4;
    end;
  end;
