From b928d78164d996d858a070c992039aa87c1c8272 Mon Sep 17 00:00:00 2001 From: lukstafi Date: Wed, 11 Dec 2013 22:00:43 +0100 Subject: [PATCH] InvarGenT Manual - Solver Parameters. Bug fix: do not annotate `assert false` branch. Numerical abduction spurious translations for inequalities fix. --- Makefile | 1 + README.md | 3 +- TODO.md | 3 +- doc/invargent-manual.pdf | Bin 89009 -> 107479 bytes doc/invargent-manual.tm | 201 +++++++++++++++++++++++++++++++++-- examples/flatten_quadrs.gadt | 11 ++ src/Infer.ml | 3 + src/InvarGenT.ml | 12 ++- src/NumS.ml | 2 +- 9 files changed, 220 insertions(+), 16 deletions(-) create mode 100644 examples/flatten_quadrs.gadt diff --git a/Makefile b/Makefile index 50409b4..c327cda 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ docs: rm -f -R doc/code mv _build/src/InvarGenT.docdir doc/code texmacs -c doc/invargent.tm doc/invargent.pdf -q + texmacs -c doc/invargent-manual.tm doc/invargent-manual.pdf -q .PHONY: clean diff --git a/README.md b/README.md index 666936e..9421c87 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,7 @@ Milestones: [x] - completed, [#] - finishing (75%-95%), [+] - in the middle (25% - [x] Enforce convergence for numerical constraints. (Required for postconditions.) - [x] Factorize joint constraint abduction scheme for use across sorts. - [x] Add more tests and resolve issues that emerge. -- [#] Export (print) a file with inferred types, and OCaml source. Collect examples, write user documentation. -- [_] Write web interface. +- [x] Export (print) a file with inferred types, and OCaml source. Collect examples, write user documentation. And version 2.0 goals: - [_] Export to OCaml using built-in or pervasives OCaml types, in particular `bool` instead of `boolean`. diff --git a/TODO.md b/TODO.md index 6e3bd7c..8a17f21 100644 --- a/TODO.md +++ b/TODO.md @@ -3,4 +3,5 @@ Place for TODOs/FIXMEs, especially if not expressed in other places. See README. * TODO: perhaps `check_connected` could be simplified or even removed from abduction? * FIXME: repeating `newtype` and `newcons` definitions should be errors. * TODO: calibrate timeout parameters (number of iterations before forced exit from simple abduction, joint abduction etc.) -* FIXME: `separate_subst` has a default argument `keep_uni=false`. Rethink for each use case if it is the correct argument. \ No newline at end of file +* FIXME: `separate_subst` has a default argument `keep_uni=false`. Rethink for each use case if it is the correct argument. +* TODO: more parsimonious use of parentheses in printing expressions and types. \ No newline at end of file diff --git a/doc/invargent-manual.pdf b/doc/invargent-manual.pdf index d84de59150860b4e6eedc99033ca5bac02d72a81..56a954523a4e083c16604263f4ed041122c6a035 100644 GIT binary patch delta 72095 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�fFe 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 - \; + The default settings of InvarGenT parameters should be sufficient for most + cases. For example, after downloading InvarGenT source code and changing + current directory to , we can enter, assuming a + Unix-like shell: + + <\code> + $ make main + + $ ./invargent examples/binary_upper_bound.gadt + + + To get the inferred types printed on standard output, use the + option: + + <\code> + $ ./invargent -inform examples/binomial_heap_nonrec.gadt + + + In some situations, hopefully unlikely for simple programs, the default + parameters of the solver algorithms do not suffice. Consider this example, + where we use to generate type annotations on + and .. nodes in the + file, in addition to annotations on + nodes: + + <\code> + $ ./invargent -inform -full_annot examples/equal_assert.gadt + + File "examples/equal_assert.gadt", line 20, characters 5-103: + + No answer in type: term abduction failed + + \; + + Perhaps increase the -term_abduction_timeout parameter. + + Perhaps increase the -term_abduction_fail parameter. + + + The suggestions are generated only when the + corresponding limit has actually been exceeded. Remember however that the + limits will often be exceeded for erroneus programs which should not + type-check. Here the default number of steps till term abduction timeout, + which is just to speed up failing for actually erroneous + programs, is too low. The complete output with timeout increased: + + <\code> + $ ./invargent -inform -full_annot -term_abduction_timeout 4000 \\ + examples/equal_assert.gadt + + val equal : >a, b. (Ty a, Ty b) > a + > b > Boolean + + InvarGenT: Generated file examples/equal_assert.gadti + + InvarGenT: Generated file examples/equal_assert.ml + + InvarGenT: Command "ocamlc -c examples/equal_assert.ml" exited with code + 0 + + + To understand the intent of the solver parameters, we need a rough + ``birds-eye view'' understanding of how InvarGenT works. The invariants and + postconditions that we solve for are logical formulas and can be ordered by + strength. Least Upper Bounds (LUBs) and Greatest Lower Bounds (GLBs) + computations are traditional tools used for solving recursive equations + over an ordered structure. In case of implicational constraints that are + generated for type inference with GADTs, constraint abduction is a form of + LUB computation. is our term for computing the + GLB wrt. strength for formulas that are conjunctions of atoms. We want the + invariants of recursive definitions -- i.e. the types of recursive + functions and formulas constraining their type variables -- to be as weak + as possible, to make the use of the corresponding definitions as easy as + possible. The weaker the invariant, the more general the type of + definition. Therefore the use of LUB, constraint abduction. For + postconditions -- i.e. the existential types of results computed by + expressions and formulas constraining their type + variables -- we want the strongest possible solutions, because stronger + postcondition provides more information at use sites of a definition. + Therefore we use LUB, disjunction elimination, but only if existential + types have been introduced by or . + + Below we discuss all of the InvarGenT options. + + <\description> + >Print type schemes of toplevel definitions as + they are inferred. + + >Do not generate the file. + + >Do not generate the file. + + >Do not call on the + generated file. + + >Annotate the and + .. nodes in generated OCaml code. This + increases the burden on inference a bit because the variables associated + with the nodes cannot be eliminated from the constraint during initial + simplification. + + >Limit on term simple abduction + steps (default 700). Simple abduction works with a single implication + branch, which roughly corresponds to a single branch -- an execution path + -- of the program. + + >Limit on backtracking steps in + term joint abduction (default 4). Joint abduction combines results for + all branches of the constraints. + + >Do not include alien (e.g. numerical) + premise information in term abduction. + + >Include recursive branches in + numerical abduction from the start. By default, in the second iteration + of solving constraints, which is the first iteration that numerical + abduction is performed, we only pass non-recursive branches to numerical + abduction. This makes it faster but less likely to find the correct + solution. + + >Numerical abduction: + coefficients from 1/N> to N> (default 3). + Numerical abduction answers are built, roughly speaking, by adding + premise equations of a branch with conclusion of a branch to get an + equation or inequality that does not conflict with other branches, but is + equivalent to the conclusion equation/inequality. This parameter decides + what range of coefficients is tried. If the highest coefficient in + correct answer is greater, abduction might fail. + + >Keep less than elements in + abduction sums (default 6). By elements here we mean distinct variables + -- lack of constant multipliers in concrete syntax of types is just a + syntactic shortcoming. + + >Limit on numerical simple + abduction steps (default 1000). + + >Limit on backtracking steps in + numerical joint abduction (default 10). + + >Disjunction elimination: check + coefficients from (default 3). Numerical disjunction + elimination is performed by approximately finding the convex hull of the + polytopes corresponding to disjuncts. A step in an exact algorithm + involves rotating a side along a ridge -- an intersection with another + side -- until the side touches yet another side. We approximate by trying + out a couple of rotations: convex combinations of the inequalities + defining the sides. This parameter decides how many rotations to try. + + >Include inequalities in conclusion + when solving numerical abduction. This setting leads to more inequalities + being tried for addition in numeric abduction answer. + + >Do not keep information for + annotating nodes. This may allow eliminating more + variables during initial constraint simplification. + + >Keep information for annotating + .. nodes. Will be set automatically anyway + when is passed. + + >Annotate .. + nodes in fallback mode of generation. When verifying the + resulting file fails, a retry is made with + nodes annotated. This option additionally annotates + .. nodes with types in the regenerated + file. + + + Let us see another example where parameters allowing the solver do more + work are needed: + + <\code> + $ ./invargent -inform -num_abduction_rotations 4 -num_abduction_timeout + 2000 examples/flatten_quadrs.gadt + + val flatten_quadrs : + + \ \ >n, a. List ((a, a, a, a), n) > + List (a, n + n + n + n) + + InvarGenT: Generated file examples/flatten_quadrs.gadti + + InvarGenT: Generated file examples/flatten_quadrs.ml + + InvarGenT: Command "ocamlc -c examples/flatten_quadrs.ml" exited with + code 0 + + + Based on user feedback, we will likely increase the default values of + parameters in a future version. <\initial> @@ -508,14 +698,14 @@ > > > - > + > > > > > > - > - > + > + > > > > @@ -543,9 +733,6 @@ <\auxiliary> <\collection> - <\associate|bib> - InvarGenT - <\associate|toc> |math-font-series||1Introduction> |.>>>>|> diff --git a/examples/flatten_quadrs.gadt b/examples/flatten_quadrs.gadt new file mode 100644 index 0000000..f960446 --- /dev/null +++ b/examples/flatten_quadrs.gadt @@ -0,0 +1,11 @@ +newtype Boolean +newtype List : type * num +newcons True : Boolean +newcons False : Boolean +newcons LNil : ∀a. List(a, 0) +newcons LCons : ∀n, a [0≤n]. a * List(a, n) ⟶ List(a, n+1) + +let rec flatten_quadrs = + function LNil -> LNil + | LCons ((x, y, z, v), l) -> + LCons (x, LCons (y, LCons (z, LCons (v, flatten_quadrs l)))) diff --git a/src/Infer.ml b/src/Infer.ml index d4524ad..c296ea6 100644 --- a/src/Infer.ml +++ b/src/Infer.ml @@ -660,6 +660,9 @@ let annotate_expr q res_sb chi_sb nice_sb e : texpr = and evs2, e2 = aux nice_sb e2 in VarSet.union evs1 evs2, App (e1, e2, lc) + | Lam (_, [cl], loc) when single_assert_false cl -> + let evs, cl = aux_cl nice_sb cl in + evs, Lam (None, [cl], loc) | Lam (ann, cls, lc) -> let evs, cls = List.split (List.map (aux_cl nice_sb) cls) in let evs = List.fold_left VarSet.union VarSet.empty evs in diff --git a/src/InvarGenT.ml b/src/InvarGenT.ml index b6c3b2e..ca59e18 100644 --- a/src/InvarGenT.ml +++ b/src/InvarGenT.ml @@ -5,6 +5,7 @@ @author Lukasz Stafiniak lukstafi (AT) gmail.com @since Mar 2013 *) +let version = "1.0" (** Annotate [let-in] nodes in fallback mode of .ml generation. *) let let_in_fallback = ref false @@ -88,7 +89,7 @@ let main () = "-num_abduction_rotations", Arg.Set_int NumS.abd_rotations, "Numerical abduction: coefficients from +/- 1/N to +/- N (default 3)"; "-num_prune_at", Arg.Set_int NumS.abd_prune_at, - "Keep less than N elements in abduction sums (default <6)"; + "Keep less than N elements in abduction sums (default 6)"; "-num_abduction_timeout", Arg.Set_int NumS.abd_timeout_count, "Limit on numerical simple abduction steps (default 1000)"; "-num_abduction_fail", Arg.Set_int NumS.abd_fail_timeout_count, @@ -106,22 +107,23 @@ let main () = ] in let fname = ref "" in let anon_fun f = fname := f in - let msg = "Usage: "^Sys.argv.(0)^"[OPTIONS] source_file.gadt" in + let msg = "InvarGenT version "^version^ + ". Usage: "^Sys.argv.(0)^"[OPTIONS] source.gadt" in Arg.parse cli anon_fun msg; try ignore (process_file !fname ~do_sig:!do_sig ~do_ml:!do_ml ~verif_ml:!verif_ml ~full_annot:!full_annot) - with (Report_toplevel _ | Contradiction _) as exn -> + with (Report_toplevel _ | Contradiction _ | NoAnswer _) as exn -> Format.printf "%a@\n%!" pr_exception exn; if !Abduction.abd_timeout_flag then Format.printf "Perhaps increase the -term_abduction_timeout parameter.@\n%!"; if !Abduction.abd_fail_flag then Format.printf "Perhaps increase the -term_abduction_fail parameter.@\n%!"; if !NumS.abd_timeout_flag then Format.printf - "Perhaps increase the -term_abduction_timeout parameter.@\n%!"; + "Perhaps increase the -num_abduction_timeout parameter.@\n%!"; if !NumS.abd_fail_flag then Format.printf - "Perhaps increase the -term_abduction_fail parameter.@\n%!"; + "Perhaps increase the -num_abduction_fail parameter.@\n%!"; exit 2 diff --git a/src/NumS.ml b/src/NumS.ml index c270f4d..1cfb0bc 100644 --- a/src/NumS.ml +++ b/src/NumS.ml @@ -591,7 +591,7 @@ let abd_simple cmp cmp_w cmp_v uni_v ~bvs ~discard ~validate *]*) (* 7c *) let ineq_trs = - if !passing_ineq_trs + if not iseq && !passing_ineq_trs then add_ineq_tr ineq_trs a else ineq_trs in (* 7d *)