File: formulas.mli

package info (click to toggle)
slat 1.2.6-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,564 kB
  • ctags: 1,843
  • sloc: ansic: 2,326; ml: 1,928; sh: 965; yacc: 402; lex: 354; makefile: 115
file content (72 lines) | stat: -rw-r--r-- 2,507 bytes parent folder | download
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
(* Security context formulas *)
type 'atoms contexts =
    Ctx_true
  | Ctx_false
  | Ctx_types of 'atoms
  | Ctx_roles of 'atoms
  | Ctx_users of 'atoms
  | Ctx_not of 'atoms contexts
  | Ctx_and of 'atoms contexts * 'atoms contexts
  | Ctx_or of 'atoms contexts * 'atoms contexts
  | Ctx_imply of 'atoms contexts * 'atoms contexts
  | Ctx_iff of 'atoms contexts * 'atoms contexts

(* Action formulas *)
type 'atoms actions =
    Act_true
  | Act_false
  | Act_classes of 'atoms
  | Act_permissions of 'atoms
  | Act_not of 'atoms actions
  | Act_and of 'atoms actions * 'atoms actions
  | Act_or of 'atoms actions * 'atoms actions
  | Act_imply of 'atoms actions * 'atoms actions
  | Act_iff of 'atoms actions * 'atoms actions

(* Transition formulas *)
type 'atoms transitions =
    Tran_true
  | Tran_false
  | Tran_classes of 'atoms
  | Tran_permissions of 'atoms
  | Tran_types of 'atoms
  | Next_types of 'atoms
  | Same_types				(* t = t' *)
  | Tran_roles of 'atoms
  | Next_roles of 'atoms
  | Same_roles				(* r = r' *)
  | Tran_users of 'atoms
  | Next_users of 'atoms
  | Same_users				(* u = u' *)
  | Tran_not of 'atoms transitions
  | Tran_and of 'atoms transitions * 'atoms transitions
  | Tran_or of 'atoms transitions * 'atoms transitions
  | Tran_imply of 'atoms transitions * 'atoms transitions
  | Tran_iff of 'atoms transitions * 'atoms transitions

(* Diagrams *)
type 'atoms diagram =
    ('atoms contexts * 'atoms actions * bool) list * (* arrows *)
      'atoms contexts *			(* final state *)
      'atoms contexts * 'atoms actions	(* exceptions *)

(* An information flow policy labeled transition system *)
type 'atoms lts = {
    types : 'atoms;		        (* All security context types *)
    roles : 'atoms;		        (* All security context roles *)
    users : 'atoms;		        (* All security context users *)
    classes : 'atoms;			(* All action classes *)
    permissions : 'atoms;		(* All action permissions *)
    initial : 'atoms contexts;	        (* The initial security contexts *)
    transition : 'atoms transitions;	(* The transition relation *)
    specifications : 'atoms transitions list (* Specifications to be checked *)
      (* The specifications are generated from neverallow and the like. *)
  }

(* Printers *)

val print_contexts : string list contexts -> unit
val print_actions : string list actions -> unit
val print_transitions : string list transitions -> unit
val print_diagram : string list diagram -> unit
val print_lts : string list lts -> unit