The main entry point of KaSim executable is main/KaSim.ml but let's describe the API bottom-up.
The folder dataStructures/ has a transparent name. You can find there:
DynamicArray |
Array with dynamic size
|
SetMap |
Our own implementattion of Set and Map
|
IntCollection |
Imperative int set
|
ValMap | |
Operator |
Compiled algebraic expression
|
Nbr |
Kappa numbers (either float, int or int64) and operations on them
|
Fractions | |
NamedDecls |
Stores a bunch of stuff the user gave a name to
|
Locality |
Output a JSON value of type
Locality.t .
|
List_util |
Set union of 2 sorted list
When l1 is included in l2:
merge_uniq l1 l2 == merge_uniq l2 l1 == l2
|
Option_util |
Utilities on option
|
Tools |
Misc utilities
|
Pp | |
Pp_svg | |
Pp_html | graph_page title deps header core f
|
Progress_report |
Utilities to show progress on stdout
|
Loggers |
* loggers.mli
*
* a module for KaSim
* Jérôme Feret, projet Antique, INRIA Paris
*
* KaSim
* Jean Krivine, Université Paris-Diderot, CNRS
*
* Creation: 26/01/2016
* Last modification: 25/05/2016
* *
*
*
* Copyright 2016 Institut National de Recherche en Informatique et
* en Automatique.
|
Graph_loggers |
* graph_loggers.mli
*
* a module for KaSim
* Jérôme Feret, projet Antique, INRIA Paris
*
* KaSim
* Jean Krivine, Université Paris-Diderot, CNRS
*
* Creation: 23/05/2016
* Last modification: 25/05/2016
* *
*
*
* Copyright 2016 Institut National de Recherche en Informatique et
* en Automatique.
|
Ode_loggers |
* graph_loggers.ml
*
* a module for KaSim
* Jérôme Feret, projet Antique, INRIA Paris
*
* KaSim
* Jean Krivine, Université Paris-Diderot, CNRS
*
* Creation: 22/07/2016
* Last modification: Time-stamp: <Jul 25 2016>* *
*
*
* Copyright 2016 Institut National de Recherche en Informatique et
* en Automatique.
|
In term/ directory stands all definitions the simulator works on.
Agent |
A node of a site graph
|
Signature |
Store definitions of agents
|
Contact_map |
(internal_states, (agent_type, agent_site) link_states
|
Pattern |
Domain to navigate in the graph
|
Instantiation |
What users wrote when writing its rules
|
Alg_expr |
Smart constructor
|
Alg_expr_extra |
Primitives for handling rule rates when detecting symmetries
|
Affine_combinations | |
Raw_mixture | |
Patterns_extra | |
Primitives |
Compiled kappa model unit
|
Model |
Compiled representation of a full Kappa model
|
Kappa_printer |
Printers (user readable) of Kappa compiled units
|
In grammar/ are the parser and the compilers
Configuration | |
Ast |
Kappa AST just after parsing
|
LKappa |
Intermediate representation of model on wich sanity has been checked
|
Snip |
Kappa pattern compiler
|
Eval |
Main compilation functions
|
The module to store and manipulate the state of the simulation are in
siteGraph/
Edges |
Concrete graph implementation
|
Navigation |
Pathes to explore a mixture
|
Replay |
Utilities to make mixtures from traces
|
The simulation engine is in simulation/
The core of the interpreter
Expr_interpreter |
Algebraic expression computation
|
Rule_interpreter | |
State_interpreter |
Event loop module
|
Counter |
Simulation progress keeper
|
Data |
Must have length >= 1 (at least
T or E )
|
Trace |
Trace of simulation
|
The machinary to cook stories from an execution trace is in cflow/
Compression_main |
Main entry to the story machinery
|
Utilities |
High-level elementary primitives to generate stories
|
Priority |
parameters to tune which event is discarded next
|
The code specific to the command line backend is in main/. It consists in file handler and renderers
Outputs |
Deal with simulation output
|
Kappa_files |
Utilities on files
|
Some APIs for KaSa can be found in KaSa_rep/export/
Export_to_KaDE |
* export.mli
* openkappa
* Jérôme Feret, projet Abstraction/Antique, INRIA Paris-Rocquencourt
*
* Creation: Aug 23 2016
* Last modification: Time-stamp: <Aug 07 2017>
* *
*
* Copyright 2010,2011 Institut National de Recherche en Informatique et
* en Automatique.
|
Export_to_KaSa |
* export.mli
* openkappa
* Jérôme Feret, projet Abstraction/Antique, INRIA Paris-Rocquencourt
*
* Creation: June 30 2016
* Last modification: Time-stamp: <Nov 13 2017>
* *
*
* Copyright 2010,2011 Institut National de Recherche en Informatique et
* en Automatique.
|
Export_to_KaSim |
* export.mli
* openkappa
* Jérôme Feret, projet Abstraction/Antique, INRIA Paris-Rocquencourt
*
* Creation: June 30 2016
* Last modification: Time-stamp: <Nov 21 2016>
* *
*
* Copyright 2010,2011 Institut National de Recherche en Informatique et
* en Automatique.
|
Some data_structures used in KaSa.
This library that proposes different implementations for arrays can be found in KaSa_rep/data_structures/
Int_storage |
* int_storage.mli
*
* Creation: <2016-03-14 feret>
* Last modification: Time-stamp: <Nov 23 2016>
*
* openkappa
* Jérôme Feret, projet Abstraction, INRIA Paris-Rocquencourt
*
*
* This library provides primitives to deal with storage functions
*
* Copyright 2010,2011,2012,2013,2014,2015 Institut National
* de Recherche en Informatique et en Automatique.
|
Mvbdu_wrapper |
* mvbdu_wrapper.mli
* openkappa
* Jérôme Feret, projet Abstraction, INRIA Paris-Rocquencourt
*
* Creation: 08/03/2010
* Last modification: Time-stamp: <Jul 11 2017>
* *
* This library provides test benchmarks for the library of sets of finite maps from integers to integers
*
* Copyright 2010 Institut National de Recherche en Informatique et
* en Automatique.
|
The code of the static analyser is in KaSa_rep/reachability_analysis/
Analyzer |
Analyzer entry point
|
Analyzer_headers |
type declarations and values shared among the abstract domains
|
Composite_domain |
composite abstract domain (no longer with communications which have been internalized)
|
Communication | |
Analyzer_domain_sig |
signature of abstract domains (with explicit communication)
|
Product |
Functor to combine several abstract domains (with explicit communiaction among them)
|
Usual_domains |
Rules_domain |
This domain tracks which rules can be applied, and warns other domains at the first application of a rule
|
Agents_domain |
Abstract domain that abstracts away the interface of agents, and see each rule as a multiset-rewriting reaction over typed agents
|
Views_domain |
Abstract domain to over-approximate the set of reachable views
|
Parallel_bonds |
Abstract domain to over-approximate the set of reachable views
|
Site_across_bonds_domain |
Abstract domain to over-approximate the set of reachable views
|
Primivites to deal with symmetries in rules and species
LKappa_group_action |
* LKappa_group_action.ml
* openkappa
* Jérôme Feret & Ly Kim Quyen, projet Antique, INRIA Paris-Rocquencourt
*
* Creation: 2016, the 5th of December
* Last modification: Time-stamp: <Jun 12 2017>
*
* Abstract domain to record relations between pair of sites in connected agents.
|
Pattern_group_action |
* pattern_group_action.ml
* openkappa
* Jérôme Feret & Ly Kim Quyen, projet Antique, INRIA Paris-Rocquencourt
*
* Creation: 2016, the 5th of December
* Last modification: Time-stamp: <May 13 2017>
*
* Abstract domain to record relations between pair of sites in connected agents.
|
Symmetries_sig |
Abstract domain to record relations between pair of sites in
connected agents.
|
Symmetries |
* symmetries.ml
* openkappa
* Jérôme Feret & Ly Kim Quyen, projet Antique, INRIA Paris-Rocquencourt
*
* Creation: 2016, the 5th of December
* Last modification: Time-stamp: <Jul 18 2017>
*
* Abstract domain to record relations between pair of sites in connected agents.
|