Hi, (I’m trying to convert the current pending PR into acceptable code changes)
in pred_setTheory, I saw there’s a definition of PERMUTES (permutation
functions over a set) as overloading of BIJ (bijections):
val _ = overload_on("PERMUTES", ``\f s. BIJ f s s``);
val _ = set_fixity "PERMUTES" (Infix(NONASSOC, 450)); (* same as relation *)
val SUM_IMAGE_PERMUTES = store_thm(
"SUM_IMAGE_PERMUTES",
``!s. FINITE s ==> !g. g PERMUTES s ==> !f. SIGMA (f o g) s = SIGMA f s``,
…);
this definition seems clear: a function is a permutation over a set if it’s a
bijection from the set to itself. But let’s recall HOL is a logic of total
functions, and what about the value of this permutation function over values
NOT in the set? Does above definition automatically indicate ``f(x) = x`` for
all elements not in the set?
On the other side, I saw the following (possible) alternative definition: (in
that pending PR)
PERMUTES p s = (!x. ~(x IN s) ==> (p(x) = x)) /\ (!y. ?!x. p x = y)
it explicitly states that, for all values not in the set s, a permutation
function acts like identity function; and it must be a total bijection (c.f.
BIJ_ALT in pred_setTheory).
Are these two definitions really equivalent?
Regards,
Chun
signature.asc
Description: Message signed with OpenPGP using GPGMail
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ hol-info mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hol-info
