X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Flambda-delta%2Fbasic_rg%2FbrgUntrusted.ml;h=20b9a5cf1c64f0c8aaa6a6f1d0b5bcc927bc7273;hb=bee436af0c6ceb1c83259c94036df8b12f901f2d;hp=65735066ab9852025762acfff0da2eec8dd8f8ff;hpb=94c6cfe7e6b833190904c6b546668d716978a812;p=helm.git diff --git a/helm/software/lambda-delta/basic_rg/brgUntrusted.ml b/helm/software/lambda-delta/basic_rg/brgUntrusted.ml index 65735066a..20b9a5cf1 100644 --- a/helm/software/lambda-delta/basic_rg/brgUntrusted.ml +++ b/helm/software/lambda-delta/basic_rg/brgUntrusted.ml @@ -12,21 +12,22 @@ module L = Log module B = Brg module E = BrgEnvironment +module R = BrgReduction module T = BrgType (* Interface functions ******************************************************) (* to share *) -let type_check f ?(si=false) g = function - | None -> f None None - | Some (e, uri, B.Abst t) -> - let f tt obj = f (Some tt) (Some obj) in - let f xt tt = E.set_obj (f tt) (e, uri, B.Abst xt) in - L.loc := e; T.type_of f ~si g B.empty_context t - | Some (e, uri, B.Abbr t) -> - let f tt obj = f (Some tt) (Some obj) in - let f xt tt = E.set_obj (f tt) (e, uri, B.Abbr xt) in - L.loc := e; T.type_of f ~si g B.empty_context t - | Some (e, uri, B.Void) -> - let f obj = f None (Some obj) in - L.loc := e; E.set_obj f (e, uri, B.Void) +let type_check err f ?(si=false) g = function + | None -> f None None + | Some (e, uri, B.Abst (a, t)) -> + let f tt entry = f (Some tt) (Some entry) in + let f xt tt = E.set_entry (f tt) (e, uri, B.abst a xt) in + L.loc := e; T.type_of err f ~si g R.empty_kam t + | Some (e, uri, B.Abbr (a, t)) -> + let f tt entry = f (Some tt) (Some entry) in + let f xt tt = E.set_entry (f tt) (e, uri, B.abbr a xt) in + L.loc := e; T.type_of err f ~si g R.empty_kam t + | Some (e, uri, (B.Void _ as b)) -> + let f entry = f None (Some entry) in + L.loc := e; E.set_entry f (e, uri, b)