spec source_67 = sort SAG, SC, T op eternal_object[SAG] : SAG op eternal_object[SC] : SC pred At : T pred AtP : T * T pred Dif : T * T * T pred Ov : T * T pred P : T * T pred PP : T * T pred PRE : SAG * T pred PRE : SC * T pred Sum : T * T * T pred tDif : SAG * SAG * SAG pred tDif : SC * SC * SC pred tOv : SAG * SAG * T pred tOv : SC * SC * T pred tP : SAG * SAG * T pred tP : SC * SC * T pred tPP : SAG * SAG * T pred tPP : SC * SC * T pred tSum : SAG * SAG * SAG pred tSum : SC * SC * SC forall t : T . PRE(eternal_object[SAG], t) %(eternal_object)% forall t : T . PRE(eternal_object[SC], t) %(eternal_object_46)% forall x, y : T . not P(x, y) => exists z : T . Dif(z, x, y) %(Extensionality+existence of the difference)% forall x, y : T . exists z : T . Sum(z, x, y) %(Existence of the sum)% forall x : T; y : T . PP(x, y) <=> P(x, y) /\ not P(y, x) %(Dd14)% forall x : T; y : T . Ov(x, y) <=> exists z : T . P(z, x) /\ P(z, y) %(Dd15)% forall x : T . At(x) <=> not exists y : T . PP(y, x) %(Dd16)% forall x : T; y : T . AtP(x, y) <=> P(x, y) /\ At(x) %(Dd17)% forall z : T; x : T; y : T . Sum(z, x, y) <=> forall w : T . Ov(w, z) <=> Ov(w, x) \/ Ov(w, y) %(Ax5)% forall z : T; x : T; y : T . Dif(z, x, y) <=> forall w : T . P(w, z) <=> P(w, x) /\ not Ov(w, y) %(Ax6)% forall x, y, z : T . P(x, x) %(reflexivity)% forall x, y, z : T . P(x, y) /\ P(y, x) => x = y %(antisymmetry)% forall x, y, z : T . P(x, y) /\ P(y, z) => P(x, z) %(transitivity)% forall z : SAG; x : SAG; y : SAG . tSum(z, x, y) <=> forall w : SAG; t : T . tOv(w, z, t) <=> tOv(w, x, t) \/ tOv(w, y, t) %(Ax1)% forall z : SAG; x : SAG; y : SAG . tDif(z, x, y) <=> forall w : SAG; t : T . tP(w, z, t) <=> tP(w, x, t) /\ not tOv(w, y, t) %(Ax2)% forall x, y : SAG; t : T . PRE(x, t) /\ PRE(y, t) /\ not tP(x, y, t) => exists z : SAG . tP(z, x, t) /\ not tOv(z, y, t) %(Ax3)% forall x, y : SAG; t : T . exists z : SAG . tSum(z, x, y) %(Existence of the sum_18_19)% forall x : SAG; y : SAG; t : T . tPP(x, y, t) <=> tP(x, y, t) /\ not tP(y, x, t) %(Ax1_5)% forall x : SAG; y : SAG; t : T . tOv(x, y, t) <=> exists z : SAG . tP(z, x, t) /\ tP(z, y, t) %(Ax2_6)% forall x1 : SAG; x2 : SAG; t : T . tP(x1, x2, t) => PRE(x1, t) /\ PRE(x2, t) %(Ax1_3)% forall x : SAG . exists t : T . PRE(x, t) %(Ax1_14)% forall x1 : SAG; x2 : SAG; t1, t2 : T . tP(x1, x2, t1) /\ P(t2, t1) => tP(x1, x2, t2) %(Ax1_15)% forall x, y, z : SAG; t : T . PRE(x, t) => tP(x, x, t) %(Ax1_27)% forall x, y, z : SAG; t : T . tP(x, y, t) /\ tP(y, z, t) => tP(x, z, t) %(Ax2_4)% forall x : SAG; t1, t2 : T . PRE(x, t1) /\ P(t2, t1) => PRE(x, t2) %(Ax1_2)% forall z : SC; x : SC; y : SC . tSum(z, x, y) <=> forall w : SC; t : T . tOv(w, z, t) <=> tOv(w, x, t) \/ tOv(w, y, t) %(Ax1_24)% forall z : SC; x : SC; y : SC . tDif(z, x, y) <=> forall w : SC; t : T . tP(w, z, t) <=> tP(w, x, t) /\ not tOv(w, y, t) %(Ax2_31)% forall x, y : SC; t : T . PRE(x, t) /\ PRE(y, t) /\ not tP(x, y, t) => exists z : SC . tP(z, x, t) /\ not tOv(z, y, t) %(Ax3_34)% forall x, y : SC; t : T . exists z : SC . tSum(z, x, y) %(Existence of the sum_18_19_42)% forall x : SC; y : SC; t : T . tPP(x, y, t) <=> tP(x, y, t) /\ not tP(y, x, t) %(Ax1_5_30)% forall x : SC; y : SC; t : T . tOv(x, y, t) <=> exists z : SC . tP(z, x, t) /\ tP(z, y, t) %(Ax2_6_33)% forall x1 : SC; x2 : SC; t : T . tP(x1, x2, t) => PRE(x1, t) /\ PRE(x2, t) %(Ax1_3_29)% forall x : SC . exists t : T . PRE(x, t) %(Ax1_14_25)% forall x1 : SC; x2 : SC; t1, t2 : T . tP(x1, x2, t1) /\ P(t2, t1) => tP(x1, x2, t2) %(Ax1_15_26)% forall x, y, z : SC; t : T . PRE(x, t) => tP(x, x, t) %(Ax1_27_28)% forall x, y, z : SC; t : T . tP(x, y, t) /\ tP(y, z, t) => tP(x, z, t) %(Ax2_4_32)% forall x : SC; t1, t2 : T . PRE(x, t1) /\ P(t2, t1) => PRE(x, t2) %(Ax1_2_27)% end spec target_67 = source_67 then %cons sorts ASO sorts SAG, SC < ASO pred PRE : ASO * T pred tOv : ASO * ASO * T pred tP : ASO * ASO * T pred tPP : ASO * ASO * T forall x : ASO . not (x in SC /\ x in SAG) %(ga_disjoint_sorts_SC_SAG)% %% free generated type ASO ::= sort SAG | sort SC %(ga_generated_ASO)% forall x : ASO; y : ASO; t : T . tPP(x, y, t) <=> tP(x, y, t) /\ not tP(y, x, t) %(Ax1_36_48)% forall x : ASO; y : ASO; t : T . tOv(x, y, t) <=> exists z : ASO . tP(z, x, t) /\ tP(z, y, t) %(Ax2_42)% forall x1 : ASO; x2 : ASO; t : T . tP(x1, x2, t) => PRE(x1, t) /\ PRE(x2, t) %(Ax1_3_41)% forall x : ASO . exists t : T . PRE(x, t) %(Ax1_14_37_39)% forall x1 : ASO; x2 : ASO; t1, t2 : T . tP(x1, x2, t1) /\ P(t2 : T, t1 : T) => tP(x1, x2, t2) %(Ax1_15_38)% forall x, y, z : ASO; t : T . PRE(x, t) => tP(x, x, t) %(Ax1_27_40)% forall x, y, z : ASO; t : T . tP(x, y, t) /\ tP(y, z, t) => tP(x, z, t) %(Ax2_4_43)% forall x : ASO; t1, t2 : T . PRE(x, t1) /\ P(t2 : T, t1 : T) => PRE(x, t2) %(Ax1_2_39)% end %% use binary sum of temp parthoods %% source esort SAG, SC, T -> sort SAG, SC, T %% target from Ontology/Dolce/DolceCons/DolceConsParts get TempParthoodBinarySum spec sp = source_67 then %cons TempParthoodBinarySum [sorts ASO,SAG,SC fit left |-> SAG, right |-> SC, sum |-> ASO] end view v : target_67 to sp end %% goes through %% link is mono %%