spec source_6 = sort T 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 Sum : T * T * T 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)% end spec target_6 = source_6 then %cons sort SC op eternal_object[SC] : SC pred PRE : SC * T pred tDif : SC * SC * SC pred tOv : SC * SC * T pred tP : SC * SC * T pred tPP : SC * SC * T pred tSum : SC * SC * SC forall t : T . PRE(eternal_object[SC], t) %(eternal_object)% 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)% 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)% 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)% forall x, y : SC; t : T . exists z : SC . tSum(z, x, y) %(Existence of the sum_18_19)% forall x : SC; y : SC; t : T . tPP(x, y, t) <=> tP(x, y, t) /\ not tP(y, x, t) %(Ax1_5)% forall x : SC; y : SC; t : T . tOv(x, y, t) <=> exists z : SC . tP(z, x, t) /\ tP(z, y, t) %(Ax2_6)% forall x1 : SC; x2 : SC; t : T . tP(x1, x2, t) => PRE(x1, t) /\ PRE(x2, t) %(Ax1_3)% forall x : SC . exists t : T . PRE(x, t) %(Ax1_14)% forall x1 : SC; x2 : SC; t1, t2 : T . tP(x1, x2, t1) /\ P(t2 : T, t1 : T) => tP(x1, x2, t2) %(Ax1_15)% forall x, y, z : SC; t : T . PRE(x, t) => tP(x, x, t) %(Ax1_27)% forall x, y, z : SC; t : T . tP(x, y, t) /\ tP(y, z, t) => tP(x, z, t) %(Ax2_4)% forall x : SC; t1, t2 : T . PRE(x, t1) /\ P(t2 : T, t1 : T) => PRE(x, t2) %(Ax1_2)% end %% use temp parthood model %% changed SC to non-empty sort in target %% changed T to non-empty sort. Forcing it to be empty makes the source actually inconsistent from Ontology/Dolce/DolceCons/DolceConsParts get OnePointTempParthoodModel spec sp = source_6 then %cons OnePointTempParthoodModel with s |-> SC end view v : target_6 to sp end %% goes through %% link is cons (no termination) %%