Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WORD_SIMPLE_SUBWORD_CONV and related lemmas #117

Merged
merged 1 commit into from
Oct 23, 2024
Merged

Conversation

jargh
Copy link
Contributor

@jargh jargh commented Oct 23, 2024

This adds several new lemmas for "simple subwords of composite word expressions":

WORD_SUBWORD_INSERT_INNER
WORD_SUBWORD_INSERT_OUTER
WORD_SUBWORD_JOIN_LOWER
WORD_SUBWORD_JOIN_UPPER
WORD_SUBWORD_SUBWORD
WORD_SUBWORD_TRIVIAL

as well as a new conversion WORD_SIMPLE_SUBWORD_CONV that packages them up into a simplifying function, e.g.

WORD_SIMPLE_SUBWORD_CONV word_subword (x:int16) (0,16):int16;;

val it : thm = |- word_subword x (0,16) = x

WORD_SIMPLE_SUBWORD_CONV

word_subword (word_join (x:int16) (y:int16):int32) (0,16):int16;;
val it : thm = |- word_subword (word_join x y) (0,16) = word_subword y (0,16)

WORD_SIMPLE_SUBWORD_CONV

word_subword (word_subword (x:int64) (32,32):int32) (0,16):int16;;
val it : thm =
|- word_subword (word_subword x (32,32)) (0,16) = word_subword x (32,16)

expressions":

    WORD_SUBWORD_INSERT_INNER
    WORD_SUBWORD_INSERT_OUTER
    WORD_SUBWORD_JOIN_LOWER
    WORD_SUBWORD_JOIN_UPPER
    WORD_SUBWORD_SUBWORD
    WORD_SUBWORD_TRIVIAL

as well as a new conversion WORD_SIMPLE_SUBWORD_CONV that packages
them up into a simplifying function, e.g.

  # WORD_SIMPLE_SUBWORD_CONV `word_subword (x:int16) (0,16):int16`;;
  val it : thm = |- word_subword x (0,16) = x

  # WORD_SIMPLE_SUBWORD_CONV
   `word_subword (word_join (x:int16) (y:int16):int32) (0,16):int16`;;
  val it : thm = |- word_subword (word_join x y) (0,16) = word_subword y (0,16)

  # WORD_SIMPLE_SUBWORD_CONV
   `word_subword (word_subword (x:int64) (32,32):int32) (0,16):int16`;;
  val it : thm =
    |- word_subword (word_subword x (32,32)) (0,16) = word_subword x (32,16)
@jrh13 jrh13 merged commit bc91659 into jrh13:master Oct 23, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants