X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Flambda-delta%2Fbasic_rg%2FbrgReduction.ml;h=12e63765971c269b1679b23030c4520a69e7d037;hb=34c2ba63c8eb5fccfd9a1fb8ac1df5895c8b58b3;hp=71a0d1639f3986a1bed66ecb35203ece83210bc7;hpb=8a4c83c6341976f2bb70eb44a0c70f2aa95ad3ea;p=helm.git diff --git a/helm/software/lambda-delta/basic_rg/brgReduction.ml b/helm/software/lambda-delta/basic_rg/brgReduction.ml index 71a0d1639..12e637659 100644 --- a/helm/software/lambda-delta/basic_rg/brgReduction.ml +++ b/helm/software/lambda-delta/basic_rg/brgReduction.ml @@ -13,12 +13,13 @@ module U = NUri module C = Cps module S = Share module L = Log +module Y = Entity module P = Output module B = Brg module O = BrgOutput module E = BrgEnvironment -type machine = { +type kam = { c: B.lenv; s: (B.lenv * B.term) list; i: int @@ -69,16 +70,18 @@ let rec step f ?(delta=false) ?(rt=false) m x = | B.Sort _ -> f m None x | B.GRef (_, uri) -> let f = function - | _, _, B.Abbr (_, v) when delta -> + | _, _, Y.Abbr v when delta -> P.add ~gdelta:1 (); step f ~delta ~rt m v - | _, _, B.Abst (_, w) when rt -> + | _, _, Y.Abst w when rt -> P.add ~grt:1 (); step f ~delta ~rt m w - | _, _, B.Void _ -> - assert false - | e, _, b -> - f m (Some (e, b)) x + | a, _, Y.Abbr v -> + let f e = f m (Some (e, B.Abbr (a, v))) x in + Y.apix C.err f a + | a, _, Y.Abst w -> + let f e = f m (Some (e, B.Abst (a, w))) x in + Y.apix C.err f a in - E.get_obj C.err f uri + E.get_entity C.err f uri | B.LRef (_, i) -> let f c = function | B.Abbr (_, v) -> @@ -91,7 +94,7 @@ let rec step f ?(delta=false) ?(rt=false) m x = assert false | B.Abst (a, _) as b -> let f e = f {m with c = c} (Some (e, b)) x in - B.apix C.err f a + Y.apix C.err f a in get C.err f m i | B.Cast (_, _, t) -> @@ -115,7 +118,7 @@ let rec step f ?(delta=false) ?(rt=false) m x = let push f m b = assert (m.s = []); let b, i = match b with - | B.Abst (a, w) -> B.abst (B.Apix m.i :: a) w, succ m.i + | B.Abst (a, w) -> B.abst (Y.Apix m.i :: a) w, succ m.i | b -> b, m.i in let f c = f {m with c = c; i = i} in @@ -176,7 +179,7 @@ and ac_stacks err f m1 m2 = (* Interface functions ******************************************************) -let empty_machine = { +let empty_kam = { c = B.empty_lenv; s = []; i = 0 }