Hello, concerning the first item, expanding the definition of Cardinality is certainly not a good idea. I suggest first proving /\ IsFiniteSet({x \in S : f[x]}) /\ 2 \notin {x \in S : f[x]} /\ {x \in S : g[x]} = {x \in S : f[x]} \cup {2} then applying lemma FS_AddElement to infer that Cardinality({x \in S : g[x]}) = Cardinality({x \in S : f[x]}) + 1 The first conjunct above follows from IsFiniteSet({1,2,3}) (proved using FS_EmptySet and FS_AddElement) using lemma FS_Subset. The second conjunct is trivial, and the third conjunct should be proved automatically: LEMMA ASSUME NEW S, NEW e \in S, NEW f \in [S -> BOOLEAN] PROVE { x \in S : [f EXCEPT ![e] = TRUE][x] } = { x \in S : f[x] } \cup {e} OBVIOUS Unfortunately, little automation is currently provided for reasoning about Cardinality and these steps are more cumbersome than you would expect them to be. ––– Concerning the second item, inferring visit'[k] = TRUE from visit' = [visit EXCEPT ![k] = TRUE] probably requires making explicit the fact that k \in DOMAIN visit For example, you can have f = [x \in {} |-> FALSE] g = [f EXCEPT ![1] = TRUE] without having g[1] = TRUE. In fact, in this example, g = f. Hope this helps, Stephan
You received this message because you are subscribed to the Google Groups "tlaplus" group. To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+unsubscribe@xxxxxxxxxxxxxxxx. To post to this group, send email to tlaplus@xxxxxxxxxxxxxxxx. Visit this group at https://groups.google.com/group/tlaplus. To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/12B16AE5-A76B-47B9-A8DA-49E405CC408F%40gmail.com. For more options, visit https://groups.google.com/d/optout. |