reserve a,b,c,v,v1,x,y for object;
reserve V,A for set;
reserve d for TypeSCNominativeData of V,A;
reserve p,q,r for SCPartialNominativePredicate of V,A;

theorem
  SC_exists(PP_or(p,q),v) = PP_or(SC_exists(p,v),SC_exists(q,v))
  proof
    set a = PP_or(p,q);
    set f = SC_exists(a,v);
    set g = SC_exists(p,v);
    set h = SC_exists(q,v);
    set b = PP_or(g,h);
A1: dom a = {d where d is TypeSCNominativeData of V,A:
     d in dom p & p.d = TRUE or d in dom q & q.d = TRUE
     or d in dom p & p.d = FALSE & d in dom q & q.d = FALSE} by Th15;
A2: dom b = {d where d is TypeSCNominativeData of V,A:
     d in dom g & g.d = TRUE or d in dom h & h.d = TRUE
     or d in dom g & g.d = FALSE & d in dom h & h.d = FALSE} by Th15;
A3: dom f = {d where d is TypeSCNominativeData of V,A:
     (ex d1 being TypeSCNominativeData of V,A st
      local_overlapping(V,A,d,d1,v) in dom a &
      a.local_overlapping(V,A,d,d1,v) = TRUE) or
     (for d1 being TypeSCNominativeData of V,A holds
      local_overlapping(V,A,d,d1,v) in dom a &
      a.local_overlapping(V,A,d,d1,v) = FALSE)} by Def1;
A4: dom g = {d where d is TypeSCNominativeData of V,A:
     (ex d1 being TypeSCNominativeData of V,A st
      local_overlapping(V,A,d,d1,v) in dom p &
      p.local_overlapping(V,A,d,d1,v) = TRUE) or
     (for d1 being TypeSCNominativeData of V,A holds
      local_overlapping(V,A,d,d1,v) in dom p &
      p.local_overlapping(V,A,d,d1,v) = FALSE)} by Def1;
A5: dom h = {d where d is TypeSCNominativeData of V,A:
     (ex d1 being TypeSCNominativeData of V,A st
      local_overlapping(V,A,d,d1,v) in dom q &
      q.local_overlapping(V,A,d,d1,v) = TRUE) or
     (for d1 being TypeSCNominativeData of V,A holds
      local_overlapping(V,A,d,d1,v) in dom q &
      q.local_overlapping(V,A,d,d1,v) = FALSE)} by Def1;
    thus dom f = dom b
    proof
      thus dom f c= dom b
      proof
        let x;
        assume
A6:     x in dom f;
        then
A7:     x is TypeSCNominativeData of V,A by NOMIN_1:39;
        per cases by A6,Th18;
        suppose ex d1 being TypeSCNominativeData of V,A st
          local_overlapping(V,A,x,d1,v) in dom a &
          a.local_overlapping(V,A,x,d1,v) = TRUE;
          then consider d1 being TypeSCNominativeData of V,A such that
A8:       local_overlapping(V,A,x,d1,v) in dom a and
A9:       a.local_overlapping(V,A,x,d1,v) = TRUE;
          set L = local_overlapping(V,A,x,d1,v);
          per cases by A8,PARTPR_1:8;
          suppose
A10:        L in dom p & p.L = TRUE;
            then
A11:        x in dom g by A7,A4;
            g.x = TRUE by A7,A10,Def1;
            hence thesis by A2,A7,A11;
          end;
          suppose
A12:        L in dom q & q.L = TRUE;
            then
A13:        x in dom h by A7,A5;
            h.x = TRUE by A7,A12,Def1;
            hence thesis by A2,A7,A13;
          end;
          suppose L in dom p & p.L = FALSE & L in dom q & q.L = FALSE;
            hence thesis by A9,PARTPR_1:9;
          end;
        end;
        suppose
A14:      for d1 being TypeSCNominativeData of V,A holds
          local_overlapping(V,A,x,d1,v) in dom a &
          a.local_overlapping(V,A,x,d1,v) = FALSE;
A15:      for d1 being TypeSCNominativeData of V,A holds
          local_overlapping(V,A,x,d1,v) in dom p &
          p.local_overlapping(V,A,x,d1,v) = FALSE
          proof
            let d1 be TypeSCNominativeData of V,A;
            set O = local_overlapping(V,A,x,d1,v);
            O in dom a & a.O = FALSE by A14;
            hence thesis by PARTPR_1:13;
          end;
          then
A16:      x in dom g by A7,A4;
A17:      g.x = FALSE by A7,A15,Def1;
A18:      for d1 being TypeSCNominativeData of V,A holds
          local_overlapping(V,A,x,d1,v) in dom q &
          q.local_overlapping(V,A,x,d1,v) = FALSE
          proof
            let d1 be TypeSCNominativeData of V,A;
            set O = local_overlapping(V,A,x,d1,v);
            O in dom a & a.O = FALSE by A14;
            hence thesis by PARTPR_1:13;
          end;
          then
A19:      x in dom h by A7,A5;
          h.x = FALSE by A7,A18,Def1;
          hence thesis by A2,A7,A16,A17,A19;
        end;
      end;
      let x;
      assume
A20:  x in dom b;
      then
A21:  x is TypeSCNominativeData of V,A by NOMIN_1:39;
      per cases by A20,PARTPR_1:8;
      suppose that
A22:    x in dom g and
A23:    g.x = TRUE;
        per cases by A22,Th18;
        suppose ex d1 being TypeSCNominativeData of V,A st
          local_overlapping(V,A,x,d1,v) in dom p &
          p.local_overlapping(V,A,x,d1,v) = TRUE;
          then consider d1 being TypeSCNominativeData of V,A such that
A24:      local_overlapping(V,A,x,d1,v) in dom p and
A25:      p.local_overlapping(V,A,x,d1,v) = TRUE;
          set L = local_overlapping(V,A,x,d1,v);
          L in dom a & a.L = TRUE by A1,A24,A25,PARTPR_1:def 4;
          hence thesis by A3,A21;
        end;
        suppose for d1 being TypeSCNominativeData of V,A holds
          local_overlapping(V,A,x,d1,v) in dom p &
          p.local_overlapping(V,A,x,d1,v) = FALSE;
          hence thesis by A21,A23,Def1;
        end;
      end;
      suppose that
A26:    x in dom h and
A27:    h.x = TRUE;
        per cases by A26,Th18;
        suppose ex d1 being TypeSCNominativeData of V,A st
          local_overlapping(V,A,x,d1,v) in dom q &
          q.local_overlapping(V,A,x,d1,v) = TRUE;
          then consider d1 being TypeSCNominativeData of V,A such that
A28:      local_overlapping(V,A,x,d1,v) in dom q and
A29:      q.local_overlapping(V,A,x,d1,v) = TRUE;
          set L = local_overlapping(V,A,x,d1,v);
          L in dom a & a.L = TRUE by A1,A28,A29,PARTPR_1:def 4;
          hence thesis by A3,A21;
        end;
        suppose for d1 being TypeSCNominativeData of V,A holds
          local_overlapping(V,A,x,d1,v) in dom q &
          q.local_overlapping(V,A,x,d1,v) = FALSE;
          hence thesis by A21,A27,Def1;
        end;
      end;
      suppose that
A30:    x in dom g and
A31:    g.x = FALSE and
A32:    x in dom h and
A33:    h.x = FALSE;
        for d1 being TypeSCNominativeData of V,A holds
        local_overlapping(V,A,x,d1,v) in dom a &
        a.local_overlapping(V,A,x,d1,v) = FALSE
        proof
          let d1 be TypeSCNominativeData of V,A;
A34:      not ex d1 being TypeSCNominativeData of V,A st
          local_overlapping(V,A,x,d1,v) in dom p &
          p.local_overlapping(V,A,x,d1,v) = TRUE by A21,A31,Def1;
A35:      not ex d1 being TypeSCNominativeData of V,A st
          local_overlapping(V,A,x,d1,v) in dom q &
          q.local_overlapping(V,A,x,d1,v) = TRUE by A21,A33,Def1;
          set L = local_overlapping(V,A,x,d1,v);
          L in dom p & p.L = FALSE & L in dom q & q.L = FALSE
          by A34,A35,A30,A32,Th18;
          hence L in dom a & a.L = FALSE by A1,PARTPR_1:def 4;
        end;
        hence thesis by A3,A21;
      end;
    end;
    let x;
    assume
A36: x in dom f;
    then
A37: x is TypeSCNominativeData of V,A by NOMIN_1:39;
    per cases by A36,Th18;
    suppose ex d1 being TypeSCNominativeData of V,A st
      local_overlapping(V,A,x,d1,v) in dom a &
      a.local_overlapping(V,A,x,d1,v) = TRUE;
      then consider d1 being TypeSCNominativeData of V,A such that
A38:  local_overlapping(V,A,x,d1,v) in dom a and
A39:  a.local_overlapping(V,A,x,d1,v) = TRUE;
      set L = local_overlapping(V,A,x,d1,v);
      per cases by A38,PARTPR_1:8;
      suppose
A40:    L in dom p & p.L = TRUE;
        then
A41:    x in dom g by A37,A4;
        g.x = TRUE by A37,A40,Def1;
        hence b.x = TRUE by A41,PARTPR_1:def 4
        .= f.x by A38,A39,A37,Def1;
      end;
      suppose
A42:    L in dom q & q.L = TRUE;
        then
A43:    x in dom h by A37,A5;
        h.x = TRUE by A37,A42,Def1;
        hence b.x = TRUE by A43,PARTPR_1:def 4
        .= f.x by A38,A39,A37,Def1;
      end;
      suppose L in dom p & p.L = FALSE & L in dom q & q.L = FALSE;
        hence thesis by A39,PARTPR_1:9;
      end;
    end;
    suppose
A44:  for d1 being TypeSCNominativeData of V,A holds
      local_overlapping(V,A,x,d1,v) in dom a &
      a.local_overlapping(V,A,x,d1,v) = FALSE;
A45:  for d1 being TypeSCNominativeData of V,A holds
      local_overlapping(V,A,x,d1,v) in dom p &
      p.local_overlapping(V,A,x,d1,v) = FALSE
      proof
        let d1 be TypeSCNominativeData of V,A;
        set O = local_overlapping(V,A,x,d1,v);
        O in dom a & a.O = FALSE by A44;
        hence thesis by PARTPR_1:13;
      end;
      then
A46:  x in dom g by A37,A4;
A47:  g.x = FALSE by A37,A45,Def1;
A48:  for d1 being TypeSCNominativeData of V,A holds
      local_overlapping(V,A,x,d1,v) in dom q &
      q.local_overlapping(V,A,x,d1,v) = FALSE
      proof
        let d1 be TypeSCNominativeData of V,A;
        set O = local_overlapping(V,A,x,d1,v);
        O in dom a & a.O = FALSE by A44;
        hence thesis by PARTPR_1:13;
      end;
      then
A49:  x in dom h by A37,A5;
      h.x = FALSE by A37,A48,Def1;
      hence b.x = FALSE by A46,A47,A49,PARTPR_1:def 4
      .= f.x by A44,A37,Def1;
    end;
  end;
