@@ -1830,25 +1830,41 @@ let make file acc stmt =
18301830
18311831 begin match DStd.Tag. get tags DE.Tags. predicate with
18321832 | Some () ->
1833- let decl_kind = E. Dpredicate defn in
1834- let ff =
1835- mk_expr ~loc: st_loc ~name_base
1833+ (* let decl_kind = E.Dpredicate defn in
1834+ let ff =
1835+ mk_expr ~loc:st_loc ~name_base
18361836 ~toplevel:false ~decl_kind body
1837- in
1838- let qb = E. mk_eq ~iff: true defn ff in
1839- let ff =
1840- E. mk_forall name_base DStd.Loc. dummy binders [] qb
1837+ in
1838+ let qb = E.mk_eq ~iff:true defn ff in
1839+ let ff =
1840+ E.mk_forall name_base DStd.Loc.dummy binders [] qb
18411841 ~toplevel:true ~decl_kind
1842- in
1843- assert (Var.Map. is_empty (E. free_vars ff Var.Map. empty));
1844- let ff = E. purify_form ff in
1845- let e =
1846- if Ty.TvSet. is_empty (E. free_type_vars ff) then ff
1847- else
1842+ in
1843+ assert (Var.Map.is_empty (E.free_vars ff Var.Map.empty));
1844+ let ff = E.purify_form ff in
1845+ let e =
1846+ if Ty.TvSet.is_empty (E.free_type_vars ff) then ff
1847+ else
18481848 E.mk_forall name_base st_loc
18491849 Var.Map.empty [] ff ~toplevel:true ~decl_kind
1850+ in *)
1851+ let args =
1852+ List. map (
1853+ fun (DE. { path; id_ty; _ } as tv ) ->
1854+ let ty = dty_to_ty id_ty in
1855+ let v = Var. of_string (get_basename path) in
1856+ Cache. store_sy tv (Sy. var v);
1857+ (v, ty)
1858+ ) terml
1859+ in
1860+ let body =
1861+ mk_expr
1862+ ~loc: st_loc ~name_base ~toplevel: false ~decl_kind: Daxiom body
1863+ in
1864+ let def =
1865+ E. mk_definition ~loc: st_loc ~name: name_base args body
18501866 in
1851- Some C. { st_decl = C. PredDef (e, name_base) ; st_loc }
1867+ Some C. { st_decl = C. PredDef def ; st_loc }
18521868 | None ->
18531869 let decl_kind = E. Dfunction defn in
18541870 let ff =
0 commit comments