X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Facic_procedural%2FproceduralTypes.ml;h=8a60f9658047118ad4c8c0ddc7b2dc4674d19326;hb=797f61edb93f41eb2c5e281bc9457f6bff633063;hp=bc725d118f1124d3d2d3adf22492677a20a797cc;hpb=1acfe506c30e7fcc9d6e427d2523130c371a1159;p=helm.git diff --git a/helm/software/components/acic_procedural/proceduralTypes.ml b/helm/software/components/acic_procedural/proceduralTypes.ml index bc725d118..8a60f9658 100644 --- a/helm/software/components/acic_procedural/proceduralTypes.ml +++ b/helm/software/components/acic_procedural/proceduralTypes.ml @@ -23,10 +23,13 @@ * http://cs.unibo.it/helm/. *) -module H = HExtlib -module C = Cic -module G = GrafiteAst -module N = CicNotationPt +module HEL = HExtlib +module C = Cic +module I = CicInspect +module G = GrafiteAst +module N = CicNotationPt + +module H = ProceduralHelpers (* functions to be moved ****************************************************) @@ -83,7 +86,7 @@ let mk_arel i b = Cic.ARel ("", "", i, b) (* grafite ast constructors *************************************************) -let floc = H.dummy_floc +let floc = HEL.dummy_floc let mk_note str = G.Comment (floc, G.Note (floc, str)) @@ -205,7 +208,7 @@ and render_steps sep a = function | p :: ((Branch (_ :: _ :: _, _) :: _) as ps) -> render_steps sep (render_step mk_sc a p) ps | p :: ps -> - render_steps sep (render_step mk_dot a p) ps + render_steps sep (render_step mk_sc a p) ps let render_steps a = render_steps mk_dot a @@ -219,3 +222,23 @@ let rec count_step a = function | _ -> succ a and count_steps a = List.fold_left count_step a + +let rec count_node a = function + | Note _ + | Theorem _ + | Qed _ + | Id _ + | Intros _ + | Clear _ + | ClearBody _ -> a + | Cut (_, t, _) + | LetIn (_, t, _) + | Apply (t, _) -> I.count_nodes a (H.cic t) + | Rewrite (_, t, _, p, _) + | Elim (t, _, p, _) + | Change (t, _, _, p, _) -> + let a = I.count_nodes a (H.cic t) in + I.count_nodes a (H.cic p) + | Branch (ss, _) -> List.fold_left count_nodes a ss + +and count_nodes a = List.fold_left count_node a