Skip to content

Files

Latest commit

e7fc5f3 · Dec 7, 2024

History

History

repl

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 28, 2022
Feb 21, 2022
Dec 7, 2024
Dec 7, 2024
Jan 12, 2022
Mar 6, 2024
Mar 12, 2024
Jan 23, 2022
Dec 7, 2024
Jan 14, 2022
Oct 8, 2024
Nov 30, 2024
Dec 7, 2024

Some definitions and proofs used in the proof of the CakeML and Candle read-eval-print loop (REPL).

evaluate_initScript.sml: Lemma used in repl_typesTheory: that evaluate_skip's invariant holds at initialisation.

evaluate_skipScript.sml: Lemmas used in repl_typesTheory. These lemmas show that a plain evaluate run can be replicated in a state with junk refs, extra type stamps and unused exception definitions.

repl_boot.cml: This file gives the CakeML REPL multi-line input and file loading capabilities.

repl_check_and_tweakScript.sml: The REPL type checks and modifies the decs given as input. This file defines the function that implements this and proves that the function will only produce type checked and allowed declarations.

repl_decs_allowedScript.sml: The REPL puts some restrictions on what decs are acceptable as user input. This file defines what those restrictions are.

repl_initScript.sml: Proves repl_types for the initial env and types from which the REPL starts.

repl_init_envProgScript.sml: This file partially instantiates the eval_state and inserts a Denv declaration.

repl_init_typesScript.sml: This file runs the type inferencer on the declarations of the basis, Candle kernel and REPL module, i.e. everything in the user-visible initial environment of the read-eval-print loop.

repl_moduleProgScript.sml: This file defines two modules:

  • Repl, for the configurable part of the REPL,
  • Interrupt, for the INT signal polling mechanism, which raises the Interrupt exception.

repl_typesScript.sml: Proofs about how the REPL uses types and the type inferencer