-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgol_in_gol_circuitLib.sig
37 lines (29 loc) · 1.1 KB
/
gol_in_gol_circuitLib.sig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
signature gol_in_gol_circuitLib =
sig
include Abbrev
type avalue = gol_in_gol_paramsLib.avalue
type evalue = gol_in_gol_paramsLib.evalue
type value = gol_in_gol_paramsLib.value
val mk_ROr: avalue * avalue -> avalue
val delay: int -> value -> value
val nextCell: avalue
val tr_evalue: evalue -> term
val tr_avalue: avalue -> term
val tr_value: value -> term
type dir = gol_simLib.dir
type io_port = (int * int) * dir * value
type teleport = (int * int) * dir
type 'a log = {
newIn: 'a * (int * int) * int * (int * value) vector -> unit,
newGate: 'a * (int * int) * int -> unit,
gateKey: gol_simLib.gate * int * gol_simLib.loaded_gate -> 'a,
teleport: teleport -> unit,
weaken: (int * int) * value -> unit
}
type wires = (int * int, value) Redblackmap.dict
type params = {period: int, pulse: int, asserts: io_port list, weaken: ((int * int) * dir) list}
val build: gol_diagramLib.gates * teleport list -> params -> 'b log -> wires
val nolog: unit log
val getWire: wires -> int * int -> dir -> value
val floodfill: gol_diagramLib.diag -> params -> thm
end