14459 lines
294 KiB
Text
Generated
14459 lines
294 KiB
Text
Generated
'(*' Comment
|
|
'\n Copyright 2020 Microsoft Research\n\n Licensed under the Apache License, Version 2.0 ' Comment
|
|
'(' Comment
|
|
'the "License"' Comment
|
|
')' Comment
|
|
';\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an "AS IS" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n' Comment
|
|
|
|
'*)' Comment
|
|
'\n\n' Text
|
|
|
|
'module' Keyword
|
|
' ' Text
|
|
'Steel' Name.Namespace
|
|
'.' Punctuation
|
|
'Semantics' Name.Namespace
|
|
'.' Punctuation
|
|
'Hoare' Name.Namespace
|
|
'.' Punctuation
|
|
'MST' Name.Class
|
|
'\n\n' Text
|
|
|
|
'module' Keyword
|
|
' ' Text
|
|
'P' Name.Class
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'FStar' Name.Namespace
|
|
'.' Punctuation
|
|
'Preorder' Name.Class
|
|
'\n\n' Text
|
|
|
|
'open' Keyword
|
|
' ' Text
|
|
'FStar' Name.Namespace
|
|
'.' Punctuation
|
|
'Tactics' Name.Class
|
|
'\n\n' Text
|
|
|
|
'open' Keyword
|
|
' ' Text
|
|
'NMST' Name.Class
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'\n ' Comment
|
|
'*' Comment
|
|
' This module provides a semantic model for a combined effect of\n ' Comment
|
|
'*' Comment
|
|
' divergence, state, and parallel composition of atomic actions.\n ' Comment
|
|
'*' Comment
|
|
'\n ' Comment
|
|
'*' Comment
|
|
' It is built over a monotonic state effect -- so that we can give\n ' Comment
|
|
'*' Comment
|
|
' lock semantics using monotonicity\n ' Comment
|
|
'*' Comment
|
|
'\n ' Comment
|
|
'*' Comment
|
|
' It also builds a generic separation-logic-style program logic\n ' Comment
|
|
'*' Comment
|
|
' for this effect, in a partial correctness setting.\n\n ' Comment
|
|
'*' Comment
|
|
' It is also be possible to give a variant of this semantics for\n ' Comment
|
|
'*' Comment
|
|
' total correctness. However, we specifically focus on partial correctness\n ' Comment
|
|
'*' Comment
|
|
' here so that this semantics can be instantiated with lock operations,\n ' Comment
|
|
'*' Comment
|
|
' which may deadlock. See ParTot.fst for a total-correctness variant of\n ' Comment
|
|
'*' Comment
|
|
' these semantics.\n ' Comment
|
|
'*' Comment
|
|
'\n ' Comment
|
|
'*' Comment
|
|
' The program logic is specified in the Hoare-style pre- and postconditions\n' Comment
|
|
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
"/// Disabling projectors because we don't use them and they increase the typechecking time" Comment
|
|
'\n\n' Text
|
|
|
|
'#' Operator
|
|
'push' Name
|
|
'-' Operator
|
|
'options' Name
|
|
' ' Text
|
|
'"' Literal.String.Double
|
|
'--fuel 0 --ifuel 2 --z3rlimit 20 --print_implicits --print_universes ' Literal.String.Double
|
|
'\\\n' Literal.String.Double
|
|
|
|
" --using_facts_from 'Prims FStar.Pervasives FStar.Preorder MST NMST Steel.Semantics.Hoare.MST'" Literal.String.Double
|
|
'"' Literal.String.Double
|
|
'\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Begin state defn ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'/// We start by defining some basic notions for a commutative monoid.' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// We could reuse FStar.Algebra.CommMonoid, but this style with' Comment
|
|
'\n' Text
|
|
|
|
'/// quanitifers was more convenient for the proof done here.' Comment
|
|
'\n\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'symmetry' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
':' Operator
|
|
'pattern' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'y' Name
|
|
')' Operator
|
|
'}' Operator
|
|
'\n ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'// Test' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'transitive' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'z' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'z' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'z' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'associative' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'z' Name
|
|
'.' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'z' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
')' Operator
|
|
' ' Text
|
|
'z' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'commutative' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
'.' Operator
|
|
'{' Operator
|
|
':' Operator
|
|
'pattern' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
'}' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'x' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'is_unit' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'y' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
':' Operator
|
|
'pattern' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'\\/' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'x' Name
|
|
'}' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'y' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'equals_ext' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x1' Name
|
|
' ' Text
|
|
'x2' Name
|
|
' ' Text
|
|
'y' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'x1' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'x2' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x1' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'`equals`' Operator.Word
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x2' Name
|
|
' ' Text
|
|
'y' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'fp_heap_0' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'heap' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'hprop' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'interp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'h' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'h' Name
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'depends_only_on_0' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'heap' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'hprop' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'interp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'disjoint' Name
|
|
':' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
':' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'}' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp' Name
|
|
':' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'fp_heap_0' Name
|
|
' ' Text
|
|
'interp' Name
|
|
' ' Text
|
|
'fp' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'h1' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'<==>' Operator
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'fp_prop_0' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'heap' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'hprop' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'interp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'disjoint' Name
|
|
':' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
':' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'}' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'{' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`' Keyword
|
|
'(' Operator
|
|
'depends_only_on_0' Name
|
|
' ' Text
|
|
'interp' Name
|
|
' ' Text
|
|
'disjoint' Name
|
|
' ' Text
|
|
'join' Name
|
|
')' Operator
|
|
'`' Keyword
|
|
' ' Text
|
|
'fp' Name
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'noeq' Keyword
|
|
'\n' Text
|
|
|
|
'type' Keyword
|
|
' ' Text
|
|
'st0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'mem' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'2' Literal.Number.Integer
|
|
';' Operator
|
|
'\n ' Text
|
|
'core' Name
|
|
':' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'mem' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'locks_preorder' Name
|
|
':' Operator
|
|
'P' Name.Namespace
|
|
'.' Punctuation
|
|
'preorder' Name
|
|
' ' Text
|
|
'mem' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'hprop' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'2' Literal.Number.Integer
|
|
';' Operator
|
|
'\n ' Text
|
|
'locks_invariant' Name
|
|
':' Operator
|
|
' ' Text
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'disjoint' Name
|
|
':' Operator
|
|
' ' Text
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'join' Name
|
|
':' Operator
|
|
' ' Text
|
|
'h0' Name
|
|
':' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
':' Operator
|
|
'mem' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'}' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'mem' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'interp' Name
|
|
':' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'emp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'star' Name
|
|
':' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'equals' Name
|
|
':' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
';' Operator
|
|
'\n' Text
|
|
|
|
'}' Operator
|
|
'\n\n\n' Text
|
|
|
|
'/// disjointness is symmetric' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'disjoint_sym' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'<==>' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'h0' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'disjoint_join' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'join_commutative' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'disjoint_sym' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'}' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm0' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'join_associative' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
'{' Operator
|
|
'disjoint_join' Name
|
|
' ' Text
|
|
'st' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
'\n\n' Text
|
|
|
|
'////////////////////////////////////////////////////////////////////////////////' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'interp_extensionality' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'#' Operator
|
|
's' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'equals' Name
|
|
':' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'r' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
's' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'h' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
':' Operator
|
|
'pattern' Name
|
|
' ' Text
|
|
'equals' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
';' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h' Name
|
|
'}' Operator
|
|
' ' Text
|
|
'equals' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'h' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'affine' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'r0' Name
|
|
' ' Text
|
|
'r1' Name
|
|
' ' Text
|
|
's' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
':' Operator
|
|
'pattern' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'r0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r1' Name
|
|
')' Operator
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'r0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r1' Name
|
|
')' Operator
|
|
' ' Text
|
|
's' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'r0' Name
|
|
' ' Text
|
|
's' Name
|
|
'\n\n' Text
|
|
|
|
'////////////////////////////////////////////////////////////////////////////////' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'depends_only_on' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp' Name
|
|
':' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'depends_only_on_0' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fp_prop_0' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'fp' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'lemma_weaken_depends_only_on' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
'{' Operator
|
|
'affine' Name
|
|
' ' Text
|
|
'st' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp0' Name
|
|
' ' Text
|
|
'fp1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'fp0' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`depends_only_on`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'fp0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'fp1' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'st_laws' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'(*' Comment
|
|
' standard laws about the equality relation ' Comment
|
|
'*)' Comment
|
|
'\n ' Text
|
|
'symmetry' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'transitive' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'interp_extensionality' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(*' Comment
|
|
' standard laws for star forming a CM ' Comment
|
|
'*)' Comment
|
|
'\n ' Text
|
|
'associative' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'star' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'commutative' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'star' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'is_unit' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'emp' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'star' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'equals_ext' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'star' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(*' Comment
|
|
" We're working in an affine interpretation of SL " Comment
|
|
'*)' Comment
|
|
'\n ' Text
|
|
'affine' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(*' Comment
|
|
' laws about disjoint and join ' Comment
|
|
'*)' Comment
|
|
'\n ' Text
|
|
'disjoint_sym' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'disjoint_join' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'join_commutative' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'join_associative' Name
|
|
' ' Text
|
|
'st' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
's' Name
|
|
':' Operator
|
|
'st0' Name
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'st_laws' Name
|
|
' ' Text
|
|
's' Name
|
|
' ' Text
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' End state defn ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Begin expects, provides, requires, and ensures defns ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'/// expects (the heap assertion expected by a computation) is simply an st.hprop' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// provides, or the post heap assertion, is a st.hprop on [a]-typed result' Comment
|
|
'\n\n' Text
|
|
|
|
'type' Keyword
|
|
' ' Text
|
|
'post_t' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
'\n\n\n' Text
|
|
|
|
'/// requires is a heap predicate that depends only on a pre heap assertion' Comment
|
|
'\n' Text
|
|
|
|
'/// (where the notion of `depends only on` is defined above as part of the state definition)' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// we call the type l_pre for logical precondition' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'pre' Name
|
|
'\n\n\n' Text
|
|
|
|
'/// ensures is a 2-state postcondition of type heap -> a -> heap -> prop' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// To define ensures, we need a notion of depends_only_on_2' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// Essentially, in the first heap argument, postconditions depend only on the expects hprop' Comment
|
|
'\n' Text
|
|
|
|
'/// and in the second heap argument, postconditions depend only on the provides hprop' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// Also note that the support for depends_only_on_2 is not required from the underlying memory model' Comment
|
|
'\n\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'depends_only_on_0_2' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'heap' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'hprop' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'interp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'disjoint' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'}' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_pre' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_post' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n\n ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'//can join any disjoint heap to the pre-heap and q is still valid' Comment
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'h_pre' Name
|
|
':' Operator
|
|
'fp_heap_0' Name
|
|
' ' Text
|
|
'interp' Name
|
|
' ' Text
|
|
'fp_pre' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'h' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h_pre' Name
|
|
' ' Text
|
|
'h' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'h_pre' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h_post' Name
|
|
' ' Text
|
|
'<==>' Operator
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'h_pre' Name
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h_post' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'//can join any disjoint heap to the post-heap and q is still valid' Comment
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'h_post' Name
|
|
':' Operator
|
|
'fp_heap_0' Name
|
|
' ' Text
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'h' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h_post' Name
|
|
' ' Text
|
|
'h' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'h_pre' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h_post' Name
|
|
' ' Text
|
|
'<==>' Operator
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'h_pre' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'h_post' Name
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'/// Abbreviations for two-state depends' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'fp_prop_0_2' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'hprop' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'interp' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'disjoint' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'join' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
':' Operator
|
|
'heap' Name
|
|
'{' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'}' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_pre' Name
|
|
':' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_post' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'q' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'heap' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'{' Operator
|
|
'depends_only_on_0_2' Name
|
|
' ' Text
|
|
'interp' Name
|
|
' ' Text
|
|
'disjoint' Name
|
|
' ' Text
|
|
'join' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp_pre' Name
|
|
' ' Text
|
|
'fp_post' Name
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'depends_only_on2' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_post' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'depends_only_on_0_2' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'disjoint' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'join' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp_pre' Name
|
|
' ' Text
|
|
'fp_post' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'fp_prop2' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_post' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'q' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'{' Operator
|
|
'depends_only_on2' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp_pre' Name
|
|
' ' Text
|
|
'fp_post' Name
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'/// Finally the type of 2-state postconditions' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'fp_prop2' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' End expects, provides, requires,\n and ensures defns ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n' Text
|
|
|
|
'effect' Keyword
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'req' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Type0' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'ens' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Type0' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'NMSTATE' Name.Class
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_preorder' Name
|
|
' ' Text
|
|
'req' Name
|
|
' ' Text
|
|
'ens' Name
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Begin interface of actions ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n' Text
|
|
|
|
'/// Actions are essentially state transformers that preserve frames' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'action_t' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'unit' Keyword.Type
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'a' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' End interface of actions ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Begin definition of the computation AST ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'/// Gadgets for building lpre- and lpostconditions for various nodes' Comment
|
|
'\n\n\n' Text
|
|
|
|
'/// Return node is parametric in provides and ensures' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'return_lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'frame_lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'h' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'frame_lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'\n\n' Text
|
|
|
|
'/// The bind rule bakes in weakening of requires / ensures' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'bind_lpre' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post_a' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre_a' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost_a' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post_a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre_b' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpre_a' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'lpost_a' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'bind_lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post_a' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre_a' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost_a' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post_a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'b' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post_b' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'b' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post_b' Name
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'h2' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpre_a' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'exists' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'lpost_a' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'y' Name
|
|
' ' Text
|
|
'h2' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'/// Parallel composition is pointwise' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'par_lpre' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preL' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreL' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preR' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreR' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'h' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'par_lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aL' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preL' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'postL' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreL' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpostL' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'postL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aR' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preR' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreR' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpostR' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'postR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpostR' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'weaker_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'next_pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'h' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'stronger_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'h' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'weakening_ok' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'wpre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'wpost' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'wlpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'wpre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'wlpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'wpre' Name
|
|
' ' Text
|
|
'wpost' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'weaker_pre' Name
|
|
' ' Text
|
|
'wpre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_post' Name
|
|
' ' Text
|
|
'wpost' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'wlpre' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'.' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'wlpost' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
')' Operator
|
|
'\n\n\n' Text
|
|
|
|
'/// Setting the flag just to reduce the time to typecheck the type m' Comment
|
|
'\n\n' Text
|
|
|
|
'#' Operator
|
|
'push' Name
|
|
'-' Operator
|
|
'options' Name
|
|
' ' Text
|
|
'"' Literal.String.Double
|
|
'--__temp_no_proj Steel.Semantics.Hoare.MST' Literal.String.Double
|
|
'"' Literal.String.Double
|
|
'\n' Text
|
|
|
|
'noeq' Keyword
|
|
'\n' Text
|
|
|
|
'type' Keyword
|
|
' ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
':' Operator
|
|
'\n ' Text
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Type' Name.Class
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'return_lpre' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Bind' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'post_a' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpre_a' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpost_a' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post_a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'b' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'post_b' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'b' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpre_b' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpost_b' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post_a' Name
|
|
' ' Text
|
|
'lpre_a' Name
|
|
' ' Text
|
|
'lpost_a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'g' Name
|
|
':' Operator
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Dv' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'b' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'b' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post_b' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'bind_lpre' Name
|
|
' ' Text
|
|
'lpre_a' Name
|
|
' ' Text
|
|
'lpost_a' Name
|
|
' ' Text
|
|
'lpre_b' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'bind_lpost' Name
|
|
' ' Text
|
|
'lpre_a' Name
|
|
' ' Text
|
|
'lpost_a' Name
|
|
' ' Text
|
|
'lpost_b' Name
|
|
')' Operator
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Act' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
':' Operator
|
|
'action_t' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'st' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Frame' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'frame_lpre' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'frame_lpost' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
')' Operator
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Par' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'aL' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'preL' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'postL' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpreL' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpostL' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'mL' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'aR' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'preR' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpreR' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpostR' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'mR' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'aL' Name
|
|
' ' Text
|
|
'&' Operator
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
')' Operator
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Weaken' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'wpre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'wpost' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'wlpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'wpre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'wlpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'wpre' Name
|
|
' ' Text
|
|
'wpost' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'_' Name
|
|
':' Operator
|
|
'squash' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'weakening_ok' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'wlpre' Name
|
|
' ' Text
|
|
'wlpost' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'wpre' Name
|
|
' ' Text
|
|
'wpost' Name
|
|
' ' Text
|
|
'wlpre' Name
|
|
' ' Text
|
|
'wlpost' Name
|
|
'\n' Text
|
|
|
|
'#' Operator
|
|
'pop' Name
|
|
'-' Operator
|
|
'options' Name
|
|
'\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' End definition of the computation AST ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Stepping relation ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n' Text
|
|
|
|
'/// All steps preserve frames' Comment
|
|
'\n\n' Text
|
|
|
|
'noeq' Keyword
|
|
'\n' Text
|
|
|
|
'type' Keyword
|
|
' ' Text
|
|
'step_result' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Step' Name.Class
|
|
':' Operator
|
|
'\n ' Text
|
|
'next_pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'next_post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Type of the single-step interpreter ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'/// Interpreter is setup as a Div function from computation trees to computation trees' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// While the requires for the Div is standard (that the expects hprop holds and requires is valid),' Comment
|
|
'\n' Text
|
|
|
|
'/// the ensures is interesting' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// As the computation evolves, the requires and ensures associated with the computation graph nodes' Comment
|
|
'\n' Text
|
|
|
|
'/// also evolve' Comment
|
|
'\n' Text
|
|
|
|
'/// But they evolve systematically: preconditions become weaker and postconditions become stronger' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// Consider { req } c | st { ens } ~~> { req1 } c1 | st1 { ens1 }' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// Then, req st ==> req1 st1 /\\' Comment
|
|
'\n' Text
|
|
|
|
'/// (forall x st_final. ens1 st1 x st_final ==> ens st x st_final)' Comment
|
|
'\n\n\n' Text
|
|
|
|
'unfold' Keyword
|
|
'\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_req' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Type0' Name.Class
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'weaker_lpre' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'next_pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'next_pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'stronger_lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'next_pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'next_post' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'h_final' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h_final' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h_final' Name
|
|
'\n\n' Text
|
|
|
|
'unfold' Keyword
|
|
'\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_ens' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Type0' Name.Class
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'r' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'r' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_post' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'weaker_lpre' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_lpost' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
'\n\n\n' Text
|
|
|
|
'/// The type of the stepping function' Comment
|
|
'\n\n' Text
|
|
|
|
'type' Keyword
|
|
' ' Text
|
|
'step_t' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Auxiliary lemmas ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n' Text
|
|
|
|
'/// Some AC lemmas on `st.star`' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'apply_assoc' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'r' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'equals_ext_left' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'r' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'equals_ext_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'r' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'p' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'p' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'commute_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'r' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
'\n ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'equals_ext_right' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'assoc_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'r' Name
|
|
' ' Text
|
|
's' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
'\n ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'equals_ext_right' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'commute_assoc_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'r' Name
|
|
' ' Text
|
|
's' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
'\n ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'equals_ext_right' Name
|
|
' ' Text
|
|
'p' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'r' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'assoc_star_right' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'r' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
's' Name
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'r' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
's' Name
|
|
')' Operator
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
'\n\n\n' Text
|
|
|
|
'/// Apply extensionality manually, control proofs' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'apply_interp_ext' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'q' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'm' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'm' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'`st.equals`' Operator.Word
|
|
' ' Text
|
|
'q' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'm' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'weaken_fp_prop' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'depends_only_on_commutes_with_weaker' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_next' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'depends_only_on' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'weaker_pre' Name
|
|
' ' Text
|
|
'fp_next' Name
|
|
' ' Text
|
|
'fp' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'depends_only_on' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp_next' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'fp_heap_0' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'fp_next' Name
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_next' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'emp' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h0' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'depends_only_on2_commutes_with_weaker' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'q' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'prop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_next' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fp_post' Name
|
|
':' Operator
|
|
'a' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'depends_only_on2' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp' Name
|
|
' ' Text
|
|
'fp_post' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'weaker_pre' Name
|
|
' ' Text
|
|
'fp_next' Name
|
|
' ' Text
|
|
'fp' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'depends_only_on2' Name
|
|
' ' Text
|
|
'q' Name
|
|
' ' Text
|
|
'fp_next' Name
|
|
' ' Text
|
|
'fp_post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'h0' Name
|
|
':' Operator
|
|
'fp_heap_0' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'fp_next' Name
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fp_next' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'emp' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h0' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'/// Lemmas about preserves_frame' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'preserves_frame_trans' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'hp1' Name
|
|
' ' Text
|
|
'hp2' Name
|
|
' ' Text
|
|
'hp3' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'm3' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'hp1' Name
|
|
' ' Text
|
|
'hp2' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'hp2' Name
|
|
' ' Text
|
|
'hp3' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'm3' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'hp1' Name
|
|
' ' Text
|
|
'hp3' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm3' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'#' Operator
|
|
'push' Name
|
|
'-' Operator
|
|
'options' Name
|
|
' ' Text
|
|
'"' Literal.String.Double
|
|
'--warn_error -271' Literal.String.Double
|
|
'"' Literal.String.Double
|
|
'\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'preserves_frame_stronger_post' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'stronger_post' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'aux' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'[' Operator
|
|
'SMTPat' Name.Class
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
']' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post_s' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'apply_assoc' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm2' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n' Text
|
|
|
|
'#' Operator
|
|
'pop' Name
|
|
'-' Operator
|
|
'options' Name
|
|
'\n\n' Text
|
|
|
|
'#' Operator
|
|
'push' Name
|
|
'-' Operator
|
|
'options' Name
|
|
' ' Text
|
|
'"' Literal.String.Double
|
|
'--z3rlimit 40 --warn_error -271' Literal.String.Double
|
|
'"' Literal.String.Double
|
|
'\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'preserves_frame_star' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'aux' Name
|
|
' ' Text
|
|
'(' Operator
|
|
"frame'" Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'[' Operator
|
|
'SMTPat' Name.Class
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
']' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'assoc_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'apply_interp_ext' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'm0' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'assoc_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'apply_interp_ext' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'm1' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'weaken_fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
'\n ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'preserves_frame_star_left' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'aux' Name
|
|
' ' Text
|
|
'(' Operator
|
|
"frame'" Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
'\n ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'f_frame' Name
|
|
':' Operator
|
|
'fp_prop' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
'.' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'[' Operator
|
|
'SMTPat' Name.Class
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
']' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'commute_assoc_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'apply_interp_ext' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'm0' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'commute_assoc_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'apply_interp_ext' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'frame' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
"frame'" Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'm1' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'weaken_fp_prop' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
"frame'" Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
'\n ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n' Text
|
|
|
|
'#' Operator
|
|
'pop' Name
|
|
'-' Operator
|
|
'options' Name
|
|
'\n\n\n' Text
|
|
|
|
'/// Lemma frame_post_for_par is used in the par proof' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// E.g. in the par rule, when L takes a step, we can frame the requires of R' Comment
|
|
'\n' Text
|
|
|
|
'/// by using the preserves_frame property of the stepping relation' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// However we also need to frame the ensures of R, for establishing stronger_post' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// Basically, we need:' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// forall x h_final. postR prev_state x h_final <==> postR next_state x h_final' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// (the proof only requires the reverse implication, but we can prove iff)' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// To prove this, we rely on the framing of all frame fp props provides by the stepping relation' Comment
|
|
'\n' Text
|
|
|
|
'///' Comment
|
|
'\n' Text
|
|
|
|
'/// To use it, we instantiate the fp prop with inst_heap_prop_for_par' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'inst_heap_prop_for_par' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'state' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'fp_prop' Name
|
|
' ' Text
|
|
'pre' Name
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'final_state' Name
|
|
'.' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'final_state' Name
|
|
' ' Text
|
|
'<==>' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'final_state' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'frame_post_for_par_tautology' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre_f' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post_f' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost_f' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre_f' Name
|
|
' ' Text
|
|
'post_f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'inst_heap_prop_for_par' Name
|
|
' ' Text
|
|
'lpost_f' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'frame_post_for_par_aux' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'pre_s' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre_f' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post_f' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_f' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre_f' Name
|
|
' ' Text
|
|
'post_f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre_s' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'pre_s' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pre_f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'inst_heap_prop_for_par' Name
|
|
' ' Text
|
|
'lpost_f' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'<==>' Operator
|
|
'\n ' Text
|
|
'inst_heap_prop_for_par' Name
|
|
' ' Text
|
|
'lpost_f' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'frame_post_for_par' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'pre_s' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre_f' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post_f' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre_f' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre_f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost_f' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre_f' Name
|
|
' ' Text
|
|
'post_f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre_s' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'pre_s' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pre_f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpre_f' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'<==>' Operator
|
|
' ' Text
|
|
'lpre_f' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'forall' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'final_state' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'.' Operator
|
|
'\n ' Text
|
|
'lpost_f' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'final_state' Name
|
|
' ' Text
|
|
'<==>' Operator
|
|
'\n ' Text
|
|
'lpost_f' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'final_state' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'frame_post_for_par_tautology' Name
|
|
' ' Text
|
|
'lpost_f' Name
|
|
' ' Text
|
|
'm0' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'frame_post_for_par_aux' Name
|
|
' ' Text
|
|
'pre_s' Name
|
|
' ' Text
|
|
'post_s' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'lpost_f' Name
|
|
'\n\n' Text
|
|
|
|
'/// Finally lemmas for proving that in the par rules preconditions get weaker' Comment
|
|
'\n' Text
|
|
|
|
'/// and postconditions get stronger' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'par_weaker_lpre_and_stronger_lpost_l' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preL' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreL' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aL' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'postL' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpostL' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'postL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'next_preL' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'next_postL' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_lpreL' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'next_preL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_lpostL' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'next_preL' Name
|
|
' ' Text
|
|
'next_postL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preR' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreR' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aR' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpostR' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'postR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'weaker_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_lpost' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'next_lpostL' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'next_preL' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'weaker_lpre' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'next_lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'frame_post_for_par' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'next_preL' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'weaker_lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'by' Keyword
|
|
'\n ' Text
|
|
'(' Operator
|
|
'norm' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'delta_only' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'`' Keyword
|
|
'%' Operator
|
|
'weaker_lpre' Name
|
|
';' Operator
|
|
' ' Text
|
|
'`' Keyword
|
|
'%' Operator
|
|
'par_lpre' Name
|
|
']' Operator
|
|
' ' Text
|
|
']' Operator
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'par_weaker_lpre_and_stronger_lpost_r' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preL' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreL' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aL' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'postL' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpostL' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'postL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'preR' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpreR' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aR' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpostR' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'postR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'next_preR' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'next_postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_lpreR' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'next_preR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_lpostR' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'next_preR' Name
|
|
' ' Text
|
|
'next_postR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
'\n ' Text
|
|
'weaker_lpre' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_lpost' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
' ' Text
|
|
'next_lpostR' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'next_preR' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'weaker_lpre' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'stronger_lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
' ' Text
|
|
'next_lpostR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'commute_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'preR' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'apply_interp_ext' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'preR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preL' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'state' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'frame_post_for_par' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'next_preR' Name
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'weaker_lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'state' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'by' Keyword
|
|
'\n ' Text
|
|
'(' Operator
|
|
'norm' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'delta_only' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'`' Keyword
|
|
'%' Operator
|
|
'weaker_lpre' Name
|
|
';' Operator
|
|
' ' Text
|
|
'`' Keyword
|
|
'%' Operator
|
|
'par_lpre' Name
|
|
']' Operator
|
|
' ' Text
|
|
']' Operator
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'commute_star_right' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'next_preR' Name
|
|
' ' Text
|
|
'preL' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'apply_interp_ext' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'next_preR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preL' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'next_state' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_preR' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'next_state' Name
|
|
'\n\n' Text
|
|
|
|
'#' Operator
|
|
'push' Name
|
|
'-' Operator
|
|
'options' Name
|
|
' ' Text
|
|
'"' Literal.String.Double
|
|
'--warn_error -271' Literal.String.Double
|
|
'"' Literal.String.Double
|
|
'\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'stronger_post_par_r' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'aL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'aR' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aL' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_postR' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'stronger_post' Name
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'next_postR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
'\n ' Text
|
|
'forall' Keyword
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'h' Name
|
|
'.' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'=' Operator
|
|
'=' Operator
|
|
'>' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'aux' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'h' Name
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Lemma' Name.Class
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'[' Operator
|
|
'SMTPat' Name.Class
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
']' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'calc' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
'\n ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'equals' Name
|
|
')' Operator
|
|
' ' Text
|
|
'{' Operator
|
|
' ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'}' Operator
|
|
'\n ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
'\n' Text
|
|
|
|
'#' Operator
|
|
'pop' Name
|
|
'-' Operator
|
|
'options' Name
|
|
'\n\n\n' Text
|
|
|
|
'(*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
' Begin stepping functions ' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*' Comment
|
|
'*)' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_ret' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'NMSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'_' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'lp' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'f' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'lpost_ret_act' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'state' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'state' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_act' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Act' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Act' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'lpost_ret_act' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'module' Keyword
|
|
' ' Text
|
|
'M' Name.Class
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'MST' Name.Class
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_bind_ret_aux' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Bind' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Bind' Name.Class
|
|
'?.' Operator
|
|
'f' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'M' Name.Namespace
|
|
'.' Punctuation
|
|
'MSTATE' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_preorder' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'M' Name.Namespace
|
|
'.' Punctuation
|
|
'MSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Bind' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'post_b' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'_' Name
|
|
')' Operator
|
|
' ' Text
|
|
'g' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'g' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
',' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_bind_ret' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Bind' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Bind' Name.Class
|
|
'?.' Operator
|
|
'f' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'NMSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'_' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_bind_ret_aux' Name
|
|
' ' Text
|
|
'f' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
'\n\n\n' Text
|
|
|
|
'#' Operator
|
|
'push' Name
|
|
'-' Operator
|
|
'options' Name
|
|
' ' Text
|
|
'"' Literal.String.Double
|
|
'--z3rlimit 40' Literal.String.Double
|
|
'"' Literal.String.Double
|
|
'\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_bind' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Bind' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'step' Name
|
|
':' Operator
|
|
'step_t' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Bind' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
')' Operator
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_bind_ret' Name
|
|
' ' Text
|
|
'f' Name
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Bind' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'b' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'post_b' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'g' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'step' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'lpre_b' Name
|
|
' ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'b' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'l_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'depends_only_on_commutes_with_weaker' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'next_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
';' Operator
|
|
'\n ' Text
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'lpost_b' Name
|
|
' ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'b' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'depends_only_on2_commutes_with_weaker' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'post_a' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'next_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'g' Name
|
|
' ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'x' Name
|
|
':' Operator
|
|
'b' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'Dv' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'next_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'post_b' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
')' Operator
|
|
')' Operator
|
|
' ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'Weaken' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'lpre_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'lpost_b' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'(' Operator
|
|
'g' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'bind_lpre' Name
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'lpre_b' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'by' Keyword
|
|
' ' Text
|
|
'norm' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'[' Operator
|
|
'delta_only' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'`' Keyword
|
|
'%' Operator
|
|
'bind_lpre' Name
|
|
']' Operator
|
|
']' Operator
|
|
')' Operator
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'next_pre' Name
|
|
' ' Text
|
|
'post_b' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'bind_lpre' Name
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'lpre_b' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'bind_lpost' Name
|
|
' ' Text
|
|
'next_lpre' Name
|
|
' ' Text
|
|
'next_lpost' Name
|
|
' ' Text
|
|
'lpost_b' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'Bind' Name.Class
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'g' Name
|
|
')' Operator
|
|
'\n' Text
|
|
|
|
'#' Operator
|
|
'pop' Name
|
|
'-' Operator
|
|
'options' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_frame_ret_aux' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'p' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'p' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Frame' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Frame' Name.Class
|
|
'?.' Operator
|
|
'f' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'M' Name.Namespace
|
|
'.' Punctuation
|
|
'MSTATE' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_preorder' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'M' Name.Namespace
|
|
'.' Punctuation
|
|
'MSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Frame' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'lp' Name
|
|
')' Operator
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
',' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_frame_ret' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'p' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'p' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Frame' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Frame' Name.Class
|
|
'?.' Operator
|
|
'f' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'NMSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'_' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_frame_ret_aux' Name
|
|
' ' Text
|
|
'f' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_frame' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'p' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'p' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Frame' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'step' Name
|
|
':' Operator
|
|
'step_t' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Frame' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'p' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'lp' Name
|
|
')' Operator
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_frame_ret' Name
|
|
' ' Text
|
|
'f' Name
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Frame' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'f_pre' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'next_fpre' Name
|
|
' ' Text
|
|
'next_fpost' Name
|
|
' ' Text
|
|
'next_flpre' Name
|
|
' ' Text
|
|
'next_flpost' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'step' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'preserves_frame_star' Name
|
|
' ' Text
|
|
'f_pre' Name
|
|
' ' Text
|
|
'next_fpre' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'frame' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'(' Operator
|
|
'frame_lpre' Name
|
|
' ' Text
|
|
'next_flpre' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'by' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'norm' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'delta_only' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'`' Keyword
|
|
'%' Operator
|
|
'frame_lpre' Name
|
|
']' Operator
|
|
']' Operator
|
|
')' Operator
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'next_fpre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'next_fpost' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'frame_lpre' Name
|
|
' ' Text
|
|
'next_flpre' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'frame_lpost' Name
|
|
' ' Text
|
|
'next_flpre' Name
|
|
' ' Text
|
|
'next_flpost' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'Frame' Name.Class
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'frame' Name
|
|
' ' Text
|
|
'f_frame' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_par_ret_aux' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Par' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Par' Name.Class
|
|
'?.' Operator
|
|
'mL' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Par' Name.Class
|
|
'?.' Operator
|
|
'mR' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'M' Name.Namespace
|
|
'.' Punctuation
|
|
'MSTATE' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'mem' Name
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_preorder' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'M' Name.Namespace
|
|
'.' Punctuation
|
|
'MSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Par' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'aL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'pL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'lpL' Name
|
|
')' Operator
|
|
' ' Text
|
|
'#' Operator
|
|
'aR' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'pR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'lpR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'l_post' Name
|
|
'\n ' Text
|
|
'#' Operator
|
|
'st' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'(' Operator
|
|
'aL' Name
|
|
' ' Text
|
|
'&' Operator
|
|
' ' Text
|
|
'aR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'pL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'pL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpL' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'h1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpR' Name
|
|
' ' Text
|
|
'h0' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'h1' Name
|
|
'\n ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'pL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'pL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'lpL' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'lpR' Name
|
|
' ' Text
|
|
'h' Name
|
|
' ' Text
|
|
'xR' Name
|
|
' ' Text
|
|
'h' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'pL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'pR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
',' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_par_ret' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Par' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Par' Name.Class
|
|
'?.' Operator
|
|
'mL' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Par' Name.Class
|
|
'?.' Operator
|
|
'mR' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'NMSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'_' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_par_ret_aux' Name
|
|
' ' Text
|
|
'f' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_par' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Par' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'step' Name
|
|
':' Operator
|
|
'step_t' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Par' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_par_ret' Name
|
|
' ' Text
|
|
'f' Name
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Par' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'aL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'postL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpreL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpostL' Name
|
|
' ' Text
|
|
'mL' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'aR' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'preR' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'postR' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpreR' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpostR' Name
|
|
' ' Text
|
|
'mR' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'b' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'sample' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'if' Keyword
|
|
' ' Text
|
|
'b' Name
|
|
' ' Text
|
|
'then' Keyword
|
|
' ' Text
|
|
'begin' Name
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'next_preL' Name
|
|
' ' Text
|
|
'next_postL' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'next_lpostL' Name
|
|
' ' Text
|
|
'mL' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'step' Name
|
|
' ' Text
|
|
'mL' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'preserves_frame_star' Name
|
|
' ' Text
|
|
'preL' Name
|
|
' ' Text
|
|
'next_preL' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'preR' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'par_weaker_lpre_and_stronger_lpost_l' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'next_lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'next_postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'assert' Name.Exception
|
|
' ' Text
|
|
'(' Operator
|
|
'stronger_post' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'next_post' Name
|
|
')' Operator
|
|
' ' Text
|
|
'by' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'norm' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'delta_only' Name
|
|
' ' Text
|
|
'[' Operator
|
|
'`' Keyword
|
|
'%' Operator
|
|
'stronger_post' Name
|
|
']' Operator
|
|
']' Operator
|
|
')' Operator
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'next_preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'next_post' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'next_lpreL' Name
|
|
' ' Text
|
|
'next_lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'Par' Name.Class
|
|
' ' Text
|
|
'mL' Name
|
|
' ' Text
|
|
'mR' Name
|
|
')' Operator
|
|
'\n\n ' Text
|
|
'end' Keyword
|
|
'\n ' Text
|
|
'else' Keyword
|
|
' ' Text
|
|
'begin' Name
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'next_preR' Name
|
|
' ' Text
|
|
'next_postR' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
' ' Text
|
|
'next_lpostR' Name
|
|
' ' Text
|
|
'mR' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'step' Name
|
|
' ' Text
|
|
'mR' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'preserves_frame_star_left' Name
|
|
' ' Text
|
|
'preR' Name
|
|
' ' Text
|
|
'next_preR' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'preL' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'par_weaker_lpre_and_stronger_lpost_r' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'lpreR' Name
|
|
' ' Text
|
|
'lpostR' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
' ' Text
|
|
'next_lpostR' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'next_post' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'xL' Name
|
|
',' Operator
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'xL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_postR' Name
|
|
' ' Text
|
|
'xR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'stronger_post_par_r' Name
|
|
' ' Text
|
|
'postL' Name
|
|
' ' Text
|
|
'postR' Name
|
|
' ' Text
|
|
'next_postR' Name
|
|
';' Operator
|
|
'\n\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'preL' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'next_preR' Name
|
|
')' Operator
|
|
' ' Text
|
|
'next_post' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpre' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'par_lpost' Name
|
|
' ' Text
|
|
'lpreL' Name
|
|
' ' Text
|
|
'lpostL' Name
|
|
' ' Text
|
|
'next_lpreR' Name
|
|
' ' Text
|
|
'next_lpostR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'Par' Name.Class
|
|
' ' Text
|
|
'mL' Name
|
|
' ' Text
|
|
'mR' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'end' Keyword
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'step_weaken' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
'{' Operator
|
|
'Weaken' Name.Class
|
|
'?' Operator
|
|
' ' Text
|
|
'f' Name
|
|
'}' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
' ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'NMSTATE' Name.Class
|
|
'?.' Operator
|
|
'reflect' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'fun' Keyword
|
|
' ' Text
|
|
'(' Operator
|
|
'_' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Weaken' Name.Class
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpre' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'lpost' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'#' Operator
|
|
'_' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'f' Name
|
|
',' Operator
|
|
' ' Text
|
|
'n' Name
|
|
')' Operator
|
|
'\n\n' Text
|
|
|
|
'/// Step function' Comment
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'rec' Keyword.Declaration
|
|
' ' Text
|
|
'step' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'(' Operator
|
|
'step_result' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'step_req' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'step_ens' Name
|
|
' ' Text
|
|
'f' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_ret' Name
|
|
' ' Text
|
|
'f' Name
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Bind' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_bind' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'step' Name
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Act' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_act' Name
|
|
' ' Text
|
|
'f' Name
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Frame' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_frame' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'step' Name
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Par' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_par' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'step' Name
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Weaken' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'step_weaken' Name
|
|
' ' Text
|
|
'f' Name
|
|
'\n\n' Text
|
|
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'rec' Keyword.Declaration
|
|
' ' Text
|
|
'run' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'st' Name
|
|
':' Operator
|
|
'st' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'a' Name
|
|
':' Operator
|
|
'Type' Name.Class
|
|
' ' Text
|
|
'u#' Operator
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'pre' Name
|
|
':' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'hprop' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'post' Name
|
|
':' Operator
|
|
'post_t' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpre' Name
|
|
':' Operator
|
|
'l_pre' Name
|
|
' ' Text
|
|
'pre' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'#' Operator
|
|
'lpost' Name
|
|
':' Operator
|
|
'l_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'f' Name
|
|
':' Operator
|
|
'm' Name
|
|
' ' Text
|
|
'st' Name
|
|
' ' Text
|
|
'a' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'lpost' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
':' Operator
|
|
' ' Text
|
|
'Mst' Name.Class
|
|
' ' Text
|
|
'a' Name
|
|
'\n ' Text
|
|
'(' Operator
|
|
'requires' Keyword
|
|
' ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'pre' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
')' Operator
|
|
'\n ' Text
|
|
'(' Operator
|
|
'ensures' Keyword
|
|
' ' Text
|
|
'fun' Keyword
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'interp' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'`st.star`' Operator.Word
|
|
' ' Text
|
|
'st' Name
|
|
'.' Operator
|
|
'locks_invariant' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'lpost' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm0' Name
|
|
')' Operator
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'st' Name
|
|
'.' Operator
|
|
'core' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
' ' Text
|
|
'/\\' Operator
|
|
'\n ' Text
|
|
'preserves_frame' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
')' Operator
|
|
'\n ' Text
|
|
'=' Operator
|
|
'\n ' Text
|
|
'match' Keyword
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'with' Keyword
|
|
'\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'Ret' Name.Class
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
' ' Text
|
|
'x' Name
|
|
'\n\n ' Text
|
|
'|' Operator
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'->' Operator
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'Step' Name.Class
|
|
' ' Text
|
|
'new_pre' Name
|
|
' ' Text
|
|
'new_post' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'_' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'step' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'run' Name
|
|
' ' Text
|
|
'f' Name
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n ' Text
|
|
'let' Keyword.Declaration
|
|
' ' Text
|
|
'm2' Name
|
|
' ' Text
|
|
'=' Operator
|
|
' ' Text
|
|
'get' Name
|
|
' ' Text
|
|
'()' Name.Builtin.Pseudo
|
|
' ' Text
|
|
'in' Keyword
|
|
'\n\n ' Text
|
|
'preserves_frame_trans' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'new_pre' Name
|
|
' ' Text
|
|
'(' Operator
|
|
'new_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
')' Operator
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm1' Name
|
|
' ' Text
|
|
'm2' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'preserves_frame_stronger_post' Name
|
|
' ' Text
|
|
'pre' Name
|
|
' ' Text
|
|
'post' Name
|
|
' ' Text
|
|
'new_post' Name
|
|
' ' Text
|
|
'x' Name
|
|
' ' Text
|
|
'm0' Name
|
|
' ' Text
|
|
'm2' Name
|
|
';' Operator
|
|
'\n ' Text
|
|
'x' Name
|
|
'\n' Text
|