| 52 |
let any_record = { empty with record = any.record } |
let any_record = { empty with record = any.record } |
| 53 |
|
|
| 54 |
let cup x y = |
let cup x y = |
| 55 |
if x = y then x else { |
if x == y then x else { |
| 56 |
times = Boolean.cup x.times y.times; |
times = Boolean.cup x.times y.times; |
| 57 |
arrow = Boolean.cup x.arrow y.arrow; |
arrow = Boolean.cup x.arrow y.arrow; |
| 58 |
record= Boolean.cup x.record y.record; |
record= Boolean.cup x.record y.record; |
| 62 |
} |
} |
| 63 |
|
|
| 64 |
let cap x y = |
let cap x y = |
| 65 |
if x = y then x else { |
if x == y then x else { |
| 66 |
times = Boolean.cap x.times y.times; |
times = Boolean.cap x.times y.times; |
| 67 |
record= Boolean.cap x.record y.record; |
record= Boolean.cap x.record y.record; |
| 68 |
arrow = Boolean.cap x.arrow y.arrow; |
arrow = Boolean.cap x.arrow y.arrow; |
| 72 |
} |
} |
| 73 |
|
|
| 74 |
let diff x y = |
let diff x y = |
| 75 |
if x = y then empty else { |
if x == y then empty else { |
| 76 |
times = Boolean.diff x.times y.times; |
times = Boolean.diff x.times y.times; |
| 77 |
arrow = Boolean.diff x.arrow y.arrow; |
arrow = Boolean.diff x.arrow y.arrow; |
| 78 |
record= Boolean.diff x.record y.record; |
record= Boolean.diff x.record y.record; |
| 380 |
struct |
struct |
| 381 |
type t = (descr * descr) list |
type t = (descr * descr) list |
| 382 |
|
|
| 383 |
|
let other d = { d with times = empty.times } |
| 384 |
|
let is_product d = is_empty (other d) |
| 385 |
|
|
| 386 |
let get d = |
let get d = |
| 387 |
let line accu (left,right) = |
let line accu (left,right) = |
| 388 |
let rec aux accu d1 d2 = function |
let rec aux accu d1 d2 = function |
| 557 |
let normalize n = |
let normalize n = |
| 558 |
internalize (rec_normalize (descr n)) |
internalize (rec_normalize (descr n)) |
| 559 |
|
|
|
module Print = |
|
|
struct |
|
| 560 |
module DescrHash = |
module DescrHash = |
| 561 |
Hashtbl.Make( |
Hashtbl.Make( |
| 562 |
struct |
struct |
| 566 |
end |
end |
| 567 |
) |
) |
| 568 |
|
|
| 569 |
|
module Print = |
| 570 |
|
struct |
| 571 |
let named = DescrHash.create 10 |
let named = DescrHash.create 10 |
| 572 |
let register_global name d = DescrHash.add named d name |
let register_global name d = DescrHash.add named d name |
| 573 |
|
|
| 754 |
let any = { empty with ints = Intervals.any } |
let any = { empty with ints = Intervals.any } |
| 755 |
end |
end |
| 756 |
|
|
| 757 |
|
module Atom = struct |
| 758 |
|
let has_atom d a = Atoms.contains a d.atoms |
| 759 |
|
end |
| 760 |
|
|
| 761 |
(* |
(* |
| 762 |
let rec print_normal_record ppf = function |
let rec print_normal_record ppf = function |
| 763 |
| Success -> Format.fprintf ppf "Yes" |
| Success -> Format.fprintf ppf "Yes" |