Skip to content

Commit 9ff569b

Browse files
Include lemma from feature/p-token (#908)
From commit 8db489b. Co-authored-by: Daniel Cumming <124537596+dkcumming@users.noreply.github.com>
1 parent 02ec87e commit 9ff569b

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

kmir/src/kmir/kdist/mir-semantics/lemmas/kmir-lemmas.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,17 @@ Definedness of the list and list elements is also guaranteed.
7979
For symbolic enum values, the variant index remains unevaluated but the original (symbolic) discriminant can be restored:
8080

8181
```k
82+
syntax Int ::= size(Discriminants) [function, total]
83+
rule size(.Discriminants) => 0
84+
rule size(discriminant(_) REST) => 1 +Int size(REST)
85+
86+
rule #Ceil(#lookupDiscrAux(DISCRS:Discriminants, I:Int))
87+
=> #Ceil(DISCRS)
88+
#And #Ceil(I)
89+
#And {true #Equals 0 <=Int I}
90+
#And {true #Equals I <Int size(DISCRS)}
91+
[simplification]
92+
8293
rule #lookupDiscriminant(typeInfoEnumType(_, _, _, _, _), #findVariantIdxAux(DISCR, DISCRS, _IDX)) => DISCR
8394
requires isOneOf(DISCR, DISCRS)
8495
[simplification, preserves-definedness, symbolic(DISCR)]

0 commit comments

Comments
 (0)