1 | include "basics/types.ma". |
---|

2 | include "basics/list.ma". |
---|

3 | include "common/Registers.ma". |
---|

4 | |
---|

5 | axiom interference_graph: Type[0]. |
---|

6 | axiom vertex: Type[0]. |
---|

7 | axiom vertex_set: Type[0]. |
---|

8 | axiom vertex_map: Type[0]. |
---|

9 | |
---|

10 | axiom ig_create: list register → interference_graph. |
---|

11 | axiom ig_mki: interference_graph → (list register) × (list Register) → |
---|

12 | (list register) × (list Register) → interference_graph. |
---|

13 | axiom ig_mkiph: interference_graph → list register → list Register → |
---|

14 | interference_graph. |
---|

15 | axiom ig_mkppp: interference_graph → register → register → interference_graph. |
---|

16 | axiom ig_mkpph: interference_graph → register → Register → interference_graph. |
---|

17 | axiom ig_coalesce: interference_graph → vertex → vertex → interference_graph. |
---|

18 | axiom ig_coalesceh: interference_graph → vertex → Register → interference_graph. |
---|

19 | axiom ig_remove: interference_graph → vertex → interference_graph. |
---|

20 | axiom ig_freeze: interference_graph → vertex → interference_graph. |
---|

21 | axiom ig_restrict: interference_graph → (vertex → bool) → interference_graph. |
---|

22 | axiom ig_droph: interference_graph → interference_graph. |
---|

23 | axiom ig_lookup: interference_graph → register → vertex. |
---|

24 | axiom ig_registers: interference_graph → vertex → list register. |
---|

25 | axiom ig_degree: interference_graph → vertex → nat. |
---|

26 | axiom ig_lowest: interference_graph → option (vertex × nat). |
---|

27 | axiom ig_lowest_non_move_related: interference_graph → option (vertex × nat). |
---|

28 | axiom ig_minimum: ∀A: Type[0]. ∀ord: A → A → order. (vertex → A) → |
---|

29 | interference_graph → option vertex. |
---|

30 | axiom ig_fold: ∀A: Type[0]. (vertex → A → A) → interference_graph → A → A. |
---|

31 | axiom ig_ipp: interference_graph → vertex → list vertex. |
---|

32 | axiom ig_iph: interference_graph → vertex → list Register. |
---|

33 | axiom ig_ppp: interference_graph → vertex → list vertex. |
---|

34 | axiom ig_pph: interference_graph → vertex → list Register. |
---|

35 | definition ig_ppedge ≝ vertex × vertex. |
---|

36 | axiom ig_pppick: interference_graph → (ig_ppedge → bool) → option ig_ppedge. |
---|

37 | definition ig_phedge ≝ vertex × Register. |
---|

38 | axiom ig_phpick: interference_graph → (ig_phedge → bool) → option ig_phedge. |
---|