Maj terminée. Pour consulter la release notes associée voici le lien :
https://about.gitlab.com/releases/2021/07/07/critical-security-release-gitlab-14-0-4-released/

Commit 71d0df7e authored by François Bobot's avatar François Bobot
Browse files

select : correct lskept goal and completion_some_kept

parent 59ecc013
import "cvc3.gen" import "cvc3.gen"
theory BuiltIn
meta "select_inst" "nothing"
meta "select_kept" "nothing"
meta "select_lskept" "nothing"
meta "completion_mode" "nothing"
end
(* (*
Local Variables: Local Variables:
mode: why mode: why
......
import "z3_smtv2.gen" import "z3_smtv2.gen"
theory BuiltIn
meta "select_inst" "nothing"
meta "select_kept" "nothing"
meta "select_lskept" "nothing"
meta "completion_mode" "nothing"
end
(* (*
Local Variables: Local Variables:
mode: why mode: why
......
...@@ -74,8 +74,10 @@ let monomorphise_goal = ...@@ -74,8 +74,10 @@ let monomorphise_goal =
let lsymbol_distinction = let lsymbol_distinction =
Trans.compose (Trans.print_meta debug meta_lsinst) Trans.seq
Encoding_distinction.lsymbol_distinction [Trans.print_meta debug meta_lskept;
Trans.print_meta debug meta_lsinst;
Encoding_distinction.lsymbol_distinction]
let phase0 env = Trans.seq [ let phase0 env = Trans.seq [
Trans.on_flag meta_select_lsinst ft_select_lsinst "nothing" env; Trans.on_flag meta_select_lsinst ft_select_lsinst "nothing" env;
......
...@@ -50,14 +50,13 @@ let good_for_env ls = ...@@ -50,14 +50,13 @@ let good_for_env ls =
module Lskept = struct module Lskept = struct
type lskept = Sls.t type lskept = Sls.t
let add_mono_lskept lskept ls _ _ = Sls.add ls lskept
(** Hunting lskept... *) (** Hunting lskept... *)
let add_mono_lskept lskept ls _ _ =
if good_for_env ls then Sls.add ls lskept else lskept
let fold_add_lskept task lskept = match task.task_decl.td_node with let fold_add_lskept task lskept = match task.task_decl.td_node with
| Decl { d_node = Dlogic l } -> | Decl { d_node = Dlogic l } ->
let accum lskept (ls,_) = let accum lskept (ls,_) = add_mono_lskept lskept ls () () in
if good_for_env ls then Sls.add ls lskept else lskept
in
List.fold_left accum lskept l List.fold_left accum lskept l
| _ -> lskept | _ -> lskept
...@@ -145,26 +144,12 @@ module Env = struct ...@@ -145,26 +144,12 @@ module Env = struct
Sls.fold fold_ls lskept env Sls.fold fold_ls lskept env
let env_from_not_only_kept_lskept env kept lskept = let env_from_not_only_kept_lskept env kept lskept =
let fold_ls ls env = (** complete by subterm *)
let rec aux env subst = function let fold ty acc =
| [] -> let rec add acc ty = ty_fold add (Sty.add ty acc) ty in
let tyl = List.map (ty_inst subst) ls.ls_args in add acc ty in
let tyv = option_map (ty_inst subst) ls.ls_value in let kept = Sty.fold fold kept kept in
add_mono_instantiation env ls tyl tyv env_from_only_kept_lskept env kept lskept
| ty::tyl ->
let fold_ty tykept env =
try
let subst = ty_match subst ty tykept in
aux env subst tyl
with TypeMismatch _ -> env
in
Sty.fold fold_ty kept env
in
let lsty = option_apply ls.ls_args (fun e -> e::ls.ls_args) ls.ls_value
in
aux env Mtv.empty lsty
in
Sls.fold fold_ls lskept env
end end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment