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



Attachment: 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
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to