88
99module Html = Tyxml_js. Html5
1010open Lwt.Infix
11+ open Lwt.Syntax
1112
1213let navli () = ReactiveData.RList. empty
1314let tab_is_active, set_tab_is_active = React.S. create false
@@ -28,10 +29,10 @@ let content () =
2829 match conclusion with
2930 | [ (site_graph, formula) ] ->
3031 let list =
31- Html_utility. print_site_graph site_graph
32+ Html_utility. print_formula_option formula
3233 (Html_utility. print_newline list )
3334 in
34- Html_utility. print_formula_option formula list
35+ Html_utility. print_site_graph site_graph list
3536 | _ :: _ | [] ->
3637 let list = Html_utility. print_newline list in
3738 let list = Html_utility. print_string " ]" list in
@@ -57,26 +58,56 @@ let content () =
5758 let list = Html_utility. print_site_graph hyp list in
5859 list
5960 in
61+ let print_conditionally_dead_agents
62+ ((agent : Public_data.agent_kind ), formula ) list =
63+ let list = Html_utility. print_newline list in
64+ let list = Html_utility. print_formula formula list in
65+ let list = Html_utility. print_string " can occur in the model if " list in
66+ Html_utility. print_agent_kind agent list
67+ in
68+ let print_conditionally_dead_rules ((rule : Public_data.rule ), formula ) list =
69+ let list = Html_utility. print_newline list in
70+ let list = Html_utility. print_formula formula list in
71+ let list = Html_utility. print_string " could be applied if " list in
72+ Html_utility. print_rule rule list
73+ in
74+
75+ let print_panel header print_function content =
76+ let texts =
77+ List. fold_left (fun list c -> print_function c list ) [] content
78+ in
79+ let title =
80+ Html. div ~a: [ Html. a_class [ " panel-heading" ] ] [ Html. txt header ]
81+ in
82+ let content =
83+ Html. div ~a: [ Html. a_class [ " panel-body" ; " panel-pre" ] ] texts
84+ in
85+ Html. div ~a: [ Html. a_class [ " panel" ; " panel-default" ] ] [ title; content ]
86+ in
6087 let add_constraints constraints =
6188 List. fold_left
6289 (fun panels (a , b ) ->
63- let texts =
64- List. fold_left
65- (fun list lemma -> print_refinement_constraint lemma list )
66- [] (List. rev b)
67- in
68- let title =
69- Html. div ~a: [ Html. a_class [ " panel-heading" ] ] [ Html. txt a ]
70- in
71- let content =
72- Html. div ~a: [ Html. a_class [ " panel-body" ; " panel-pre" ] ] texts
73- in
74- Html. div
75- ~a: [ Html. a_class [ " panel" ; " panel-default" ] ]
76- [ title; content ]
77- :: panels)
90+ print_panel a print_refinement_constraint b :: panels)
7891 [] constraints
7992 in
93+ let add_rules
94+ (conditionally_dead_rules : Public_data.rule_deadness_conditions ) =
95+ if List. length conditionally_dead_rules > 0 then
96+ print_panel " Conditions for rule deadness" print_conditionally_dead_rules
97+ conditionally_dead_rules
98+ :: []
99+ else
100+ [ Html. div [] ]
101+ in
102+ let add_agents
103+ (conditionally_dead_agents : Public_data.agent_deadness_conditions ) =
104+ if List. length conditionally_dead_agents > 0 then
105+ print_panel " Conditions for agent deadness"
106+ print_conditionally_dead_agents conditionally_dead_agents
107+ :: []
108+ else
109+ [ Html. div [] ]
110+ in
80111 let print_error_message r =
81112 let title =
82113 Html. div
@@ -104,8 +135,19 @@ let content () =
104135 let constraints_div =
105136 State_project. on_project_change_async ~on: tab_is_active ()
106137 (React.S. const () ) [] (fun (manager : Api.concrete_manager ) () ->
107- manager#get_constraints_list
108- > |= Result_util. fold ~ok: add_constraints ~error: print_error_message)
138+ let * out_constraints =
139+ manager#get_constraints_list
140+ > |= Result_util. fold ~ok: add_constraints ~error: print_error_message
141+ in
142+ let * out_rules =
143+ manager#get_conditionally_dead_rules
144+ > |= Result_util. fold ~ok: add_rules ~error: print_error_message
145+ in
146+ let * out_agents =
147+ manager#get_conditionally_dead_agents
148+ > |= Result_util. fold ~ok: add_agents ~error: print_error_message
149+ in
150+ Lwt. return (out_constraints @ out_rules @ out_agents))
109151 in
110152 [
111153 Tyxml_js.R.Html5. div
0 commit comments